ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/ContinuousPrint/TestOrderPrint.aspx.cs

657 lines
34 KiB
C#
Raw Normal View History

2024-05-08 17:17:11 +08:00
using BLL;
using NPOI.OpenXmlFormats.Wordprocessing;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Web;
using System.Web.UI;
namespace FineUIPro.Web.ContinuousPrint
{
public partial class TestOrderPrint : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.drpIsPrint.DataTextField = "Text";
this.drpIsPrint.DataValueField = "Value";
this.drpIsPrint.DataSource = BLL.DropListService.IsTrueOrFalseDrpList();
this.drpIsPrint.DataBind();
Funs.FineUIPleaseSelect(this.drpIsPrint);
BindGrid();
}
}
#region Grid1
/// <summary>
/// 绑定Grid1
/// </summary>
public void BindGrid()
{
var project = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1");
if (!string.IsNullOrEmpty(txtProjectCode.Text))
{
project = project.Where(e => e.ProjectCode.Contains(txtProjectCode.Text.Trim())).ToList();
}
Grid1.RecordCount = project.Count;
var table = this.GetPagedDataTable(Grid1, project);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region Grid2
/// <summary>
/// 绑定Grid2
/// </summary>
public void BindGrid1(string ProjectId)
{
var str = string.Empty;
// 筛选关闭的批
if (this.drpIsPrint.SelectedValue != "null")
{
if (Convert.ToBoolean(drpIsPrint.SelectedValue))
{
str += " and isnull(a.CH_PrintDate,'')!=''";
}
else
{
str += " and isnull(a.CH_PrintDate,'')=''";
}
2024-07-17 17:00:37 +08:00
2024-05-08 17:17:11 +08:00
}
2024-07-17 17:00:37 +08:00
str += " ORDER BY a.CH_TrustDate DESC";
string strSql = @"select a.CH_TrustID,a.CH_TrustCode,a.CH_TrustDate,a.CH_Printer,
a.CH_PrintDate,b.ProjectCode,b.ProjectName,b.ShortName,b.StartDate,b.EndDate
from HJGL_CH_Trust as a
inner join Base_Project as b on a.ProjectId=b.ProjectId
where 1=1 and a.ProjectId= @ProjectId" + str;
2024-05-08 17:17:11 +08:00
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", ProjectId));
SqlParameter[] parameter = listStr.ToArray();
Grid2.DataSource = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid2.DataBind();
Grid2.SelectAllRows();
}
#endregion
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
2024-07-17 17:00:37 +08:00
protected void Grid2_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
BindGrid1(this.Grid1.SelectedRowID);
}
2024-05-08 17:17:11 +08:00
#endregion
#region
/// <summary>
/// 选择加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowClick(object sender, GridRowClickEventArgs e)
{
BindGrid1(this.Grid1.SelectedRowID);
}
#endregion
#region
/// <summary>
/// 得到热处理类型
/// </summary>
/// <returns></returns>
protected string ConvertProessTypes(object ProessTypes)
{
string proessTypes = string.Empty;
if (ProessTypes != null)
{
proessTypes = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(ProessTypes.ToString());
}
return proessTypes;
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
protected void btnSubmit_Click(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 是否打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpIsPrint_SelectedIndexChanged(object sender, EventArgs e)
{
BindGrid1(this.Grid1.SelectedRowID);
}
#endregion
#region
/// <summary>
/// 检测委托单打印
/// </summary>
protected void btnPrint_Click(object sender, EventArgs e)
{
if (Grid2.SelectedRowIndexArray.Length <= 0)
{
Alert.ShowInTop("最少选中一行!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "out1.xlsx";
if (Grid2.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("检测委托单");
#region
ws.SetColumnWidth(0, (4 * 256) + 126);//3.92
ws.SetColumnWidth(1, 3 * 256);//2.42
ws.SetColumnWidth(2, (3 * 256) + 75); //2.67
ws.SetColumnWidth(3, 4 * 256); //3.42
ws.SetColumnWidth(4, (7 * 256) + 200);//7.17
ws.SetColumnWidth(5, (4 * 256) + 145);//4
ws.SetColumnWidth(6, (5 * 256) + 15);//4.5
ws.SetColumnWidth(7, (6 * 256) + 126);//5.92
ws.SetColumnWidth(8, (8 * 256) + 145);//8
ws.SetColumnWidth(9, (3 * 256) + 200);//3.17
ws.SetColumnWidth(10, (2 * 256) + 75);//1.67
ws.SetColumnWidth(11, 250);//0.63
ws.SetColumnWidth(12, (7 * 256) + 126);//6.92
ws.SetColumnWidth(13, (5 * 256) - 50);//4.25
ws.SetColumnWidth(14, (6 * 256) + 15);//5.5
ws.SetColumnWidth(15, (14 * 256) - 50);//13.25
#endregion
//图片地址
byte[] bytes = File.ReadAllBytes(Server.MapPath("~/") + "Images\\PrintLog.png");
int pictureIdx = hssfworkbook.AddPicture(bytes, PictureType.JPEG);
for (int gi = 0; gi < Grid2.Rows.Count; gi++)
{
if (Grid2.SelectedRowIndexArray.Contains(gi))
{
System.Web.UI.WebControls.HiddenField CH_TrustID = Grid2.Rows[gi].FindControl("hidCH_TrustID") as System.Web.UI.WebControls.HiddenField;
System.Web.UI.WebControls.HiddenField hidProjectName = Grid2.Rows[gi].FindControl("hidProjectName") as System.Web.UI.WebControls.HiddenField;
//修改数据
Model.HJGL_CH_Trust trust = HJGL_TrustManageEditService.GetCH_TrustByID(CH_TrustID.Value);
if (trust != null)
{
trust.CH_PrintDate = DateTime.Now.Date;
trust.CH_Printer = this.CurrUser.UserName;
HJGL_TrustManageEditService.PrintCH_Trust(trust);
}
//列表
var listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@CH_TrustID", CH_TrustID.Value));
SqlParameter[] parameter = listStr.ToArray();
var tb = SQLHelper.GetDataTableRunProc("HJGL_sp_rpt_TrustItem", parameter);
//头部
var listTitleStr = new List<SqlParameter>();
listTitleStr.Add(new SqlParameter("@CH_TrustID", CH_TrustID.Value));
SqlParameter[] titleparameter = listTitleStr.ToArray();
var tbTitle = SQLHelper.GetDataTableRunProc("HJGL_sp_rpt_Trust", titleparameter);
if (tb.Rows.Count > 0 && tbTitle.Rows.Count > 0)
{
var allPageNum = Math.Ceiling((float)tb.Rows.Count / 20);
var titIsXu = 30;
for (int i = 1; i <= allPageNum; i++)
{
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//有边框文字居左
ICellStyle leftstyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
//底部双底虚线
ICellStyle doubleLinestyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Double, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//无边框文字靠左
ICellStyle leftNoneStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
//无边框文字靠右
ICellStyle rightNoneStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10, true);
//头部样式
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 11, true, true, "黑体");
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, int.Parse((rowIndex + titIsXu).ToString()), style, 0, 15);
#region
//行0
CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex, 0, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(0).SetCellValue("文件版本1");
ws.GetRow(rowIndex).GetCell(0).CellStyle = leftNoneStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(14).SetCellValue("保管期限5年");
ws.GetRow(rowIndex).GetCell(14).CellStyle = rightNoneStyle;
//行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 3, 0, 3);
ws.AddMergedRegion(region);
IDrawing patriarch = ws.CreateDrawingPatriarch();
IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 0, rowIndex + 1, 4, rowIndex + 4);
IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
//pict.Resize();
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("中国石油化工股份有限公司镇海炼化分公司管理体系");
//行2
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("项目管理部焊缝检测委托单");
ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = titleStyle;
//行3
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("记录编号");
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 6, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("PMT-T10.326.06.040.2016");
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 10, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("使用单位");
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("镇海石化建安工程有限公司");
//行4
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("项目号");
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue(tbTitle.Rows[0]["ProjectCode"].ToString());
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 6, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("项目名称");
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue(tbTitle.Rows[0]["ProjectName"].ToString());
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = leftstyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("委托单编号");
ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue(tbTitle.Rows[0]["CH_TrustCode"].ToString());
//行5
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("区域号");
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue(tbTitle.Rows[0]["WorkAreaCode"].ToString());
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("分项工程");
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("");
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测时机");
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("焊后");
//行6
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件编号");
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("见下");
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue("检件名称");
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 8, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(8).SetCellValue("管道焊接");
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("热处理状态");
ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue(tbTitle.Rows[0]["IsHot"].ToString());
//行7
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测方法");
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue(tbTitle.Rows[0]["NDT_Code"].ToString());
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue("焊接方法");
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 8, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(8).SetCellValue(tbTitle.Rows[0]["WME_Code"].ToString());
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 13, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(13).SetCellValue("坡口形式");
ws.GetRow(rowIndex + 7).GetCell(15).SetCellValue(tbTitle.Rows[0]["JST_Name"].ToString());
//行8
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("检测比例");
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue(tbTitle.Rows[0]["NDTR_Name"].ToString());
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 6, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("检测标准");
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 8, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(8).SetCellValue(tbTitle.Rows[0]["CH_NDTCriteria"].ToString());
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 13, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(13).SetCellValue("合格级别");
ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue(tbTitle.Rows[0]["AcceptGrade"].ToString());
//行9
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("委托人");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = ws.GetRow(rowIndex + 9).GetCell(1).CellStyle = doubleLinestyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 2, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue(tbTitle.Rows[0]["TrustManName"].ToString());
ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = ws.GetRow(rowIndex + 9).GetCell(3).CellStyle = ws.GetRow(rowIndex + 9).GetCell(4).CellStyle = doubleLinestyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 5, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("审核人");
ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = ws.GetRow(rowIndex + 9).GetCell(6).CellStyle = doubleLinestyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 7, 8);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(7).SetCellValue(tbTitle.Rows[0]["AuditManName"].ToString());
ws.GetRow(rowIndex + 9).GetCell(7).CellStyle = ws.GetRow(rowIndex + 9).GetCell(8).CellStyle = doubleLinestyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 9, 11);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("接收人");
ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = ws.GetRow(rowIndex + 9).GetCell(10).CellStyle = ws.GetRow(rowIndex + 9).GetCell(11).CellStyle = doubleLinestyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 12, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(12).SetCellValue("");
ws.GetRow(rowIndex + 9).GetCell(14).SetCellValue("日期");
ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue(tbTitle.Rows[0]["CH_TrustDate"].ToString());
ws.GetRow(rowIndex + 9).GetCell(12).CellStyle = ws.GetRow(rowIndex + 9).GetCell(13).CellStyle = ws.GetRow(rowIndex + 9).GetCell(14).CellStyle = ws.GetRow(rowIndex + 9).GetCell(15).CellStyle = doubleLinestyle;
#endregion
#region
var dataTit = rowIndex + 10;
//合并单元格
for (int hb = dataTit; hb <= rowIndex + titIsXu; hb++)
{
region = new CellRangeAddress(hb, hb, 1, 3);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 4, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 6, 7);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 8, 9);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 10, 12);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 13, 14);
ws.AddMergedRegion(region);
}
//每页数据开始和结束条数
var dStart = i == 1 ? 0 : (i - 1) * 20;
var dEnd = i * 20;
//获取当前页数据
var pageTb = GetPageToTable(tb, dStart, dEnd);
//列头
ws.GetRow(dataTit).GetCell(0).SetCellValue("序号");
ws.GetRow(dataTit).GetCell(1).SetCellValue("检测批号");
ws.GetRow(dataTit).GetCell(4).SetCellValue("检件编号");
ws.GetRow(dataTit).GetCell(6).SetCellValue("焊缝编号");
ws.GetRow(dataTit).GetCell(8).SetCellValue("焊工号");
ws.GetRow(dataTit).GetCell(10).SetCellValue("焊缝规格");
ws.GetRow(dataTit).GetCell(13).SetCellValue("材质");
ws.GetRow(dataTit).GetCell(15).SetCellValue("备注");
//数据
for (int j = 0; j < pageTb.Rows.Count; j++)
{
int dataIndex = dataTit + j + 1;
ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["Number"].ToString());
ws.GetRow(dataIndex).GetCell(1).SetCellValue(pageTb.Rows[j]["BatchCode"].ToString());
ws.GetRow(dataIndex).GetCell(4).SetCellValue(pageTb.Rows[j]["ISO_IsoNo"].ToString());
ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["JOT_JointNo"].ToString());
ws.GetRow(dataIndex).GetCell(8).SetCellValue(pageTb.Rows[j]["WED_Code"].ToString());
ws.GetRow(dataIndex).GetCell(10).SetCellValue(pageTb.Rows[j]["JOT_JointDesc"].ToString());
ws.GetRow(dataIndex).GetCell(13).SetCellValue(pageTb.Rows[j]["STE_Code"].ToString());
ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[j]["CH_Remark"].ToString());
}
#endregion
#region
//尾部样式
ICellStyle noneStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10);
//创建尾部行
var tEnd = int.Parse((rowIndex + titIsXu + 1).ToString());
ws.CreateRow(tEnd);
ws.CreateRow(tEnd).HeightInPoints = 21f;
//创建尾部列
for (int eIndex = 0; eIndex <= 15; eIndex++)
{
ws.GetRow(tEnd).CreateCell(eIndex);
ws.GetRow(tEnd).GetCell(eIndex).CellStyle = noneStyle;
}
region = new CellRangeAddress(tEnd, tEnd, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(tEnd).GetCell(14).SetCellValue(string.Format("第 {0} 页 共 {1} 页", i, allPageNum));
#endregion
rowIndex += int.Parse((titIsXu + 2).ToString());
}
}
}
}
ws.SetMargin(MarginType.LeftMargin, 0.7);
ws.SetMargin(MarginType.RightMargin, 0.5);
//ws.SetMargin(MarginType.BottomMargin, 1);
//ws.SetMargin(MarginType.TopMargin, 1);
//ws.SetMargin(MarginType.FooterMargin, 0.5);
//ws.SetMargin(MarginType.HeaderMargin, 0.5);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("检测委托单.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
#endregion
#region
/// <summary>
/// 行和列
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd, int ptype = 1)
{
var noneStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints =
i == sRows ? 19.5f :
i == (sRows + 1) ? 20.3f :
i == (sRows + 2) ? 31.5f :
i == (sRows + 3) ? 21.8f :
i == (sRows + 5) ? 21f :
i == (sRows + 6) ? 21.8f :
i == (sRows + 7) ? 21.8f :
i == (sRows + 8) ? 21.8f :
i == (sRows + 9) ? 21.8f :
i == (sRows + 10) ? 25.5f :
22.5f;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).GetCell(j).CellStyle = i == sRows ? noneStyle : style;
}
}
return ws;
}
/// <summary>
/// 查询指定条数分页
/// </summary>
/// <returns></returns>
public static DataTable GetPageToTable(DataTable dt, int StartNum, int EndNum)
{
//0页代表每页数据直接返回
if (EndNum == 0) return dt;
//数据源为空返回空DataTable
if (dt == null) return new DataTable();
DataTable newdt = dt.Copy();
newdt.Clear();//copy dt的框架
if (StartNum >= dt.Rows.Count)
return newdt;//源数据记录数小于等于要显示的记录直接返回dt
if (EndNum > dt.Rows.Count)
EndNum = dt.Rows.Count;
for (int i = StartNum; i <= EndNum - 1; i++)
{
DataRow newdr = newdt.NewRow();
DataRow dr = dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName] = dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}
return newdt;
}
#endregion
}
}