diff --git a/HJGL/.vs/HJGL/config/applicationhost.config b/HJGL/.vs/HJGL/config/applicationhost.config index 1963de0..e47cfd0 100644 --- a/HJGL/.vs/HJGL/config/applicationhost.config +++ b/HJGL/.vs/HJGL/config/applicationhost.config @@ -162,7 +162,7 @@ - + @@ -250,7 +250,7 @@ - + diff --git a/HJGL/FineUIPro.Web/Web.config b/HJGL/FineUIPro.Web/Web.config index baa8804..9ecdad1 100644 --- a/HJGL/FineUIPro.Web/Web.config +++ b/HJGL/FineUIPro.Web/Web.config @@ -9,7 +9,7 @@
- + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx index e16c24b..8327805 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx @@ -53,7 +53,7 @@ @@ -66,7 +66,8 @@ - + @@ -214,7 +215,7 @@ - /// 加载树 @@ -655,6 +662,11 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage Alert.ShowInTop("请选择打印报表!", MessageBoxIcon.Warning); return; } + if (string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID) ) + { + Alert.ShowInTop("请选择试压包!", MessageBoxIcon.Warning); + return; + } CreateDataExcel(selectValArray); } @@ -1146,210 +1158,368 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage int rowIndex = 0; var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); - #region 头部 + //查询数据 + string sql = @"select * from ( + select + a.PTP_ID, + a.TestPackageNo, + d.WorkAreaId, + d.WorkAreaCode, + c.PipelineId, + c.PipelineCode, + c.SystemNumber, + a.TestHeat, + a.TestType, + c.SingleNumber, + c.DrawingsNum, + a.Remark, + (select top 1 PageNum from Pipeline_WeldJoint where PipelineId=b.PipelineId order by WeldJointCode) as PageNum + from PTP_TestPackage as a + inner join + PTP_PipelineList as b on a.PTP_ID=b.PTP_ID + left join + Pipeline_Pipeline as c on b.PipelineId=c.PipelineId + left join Project_WorkArea as d on b.WorkAreaId=d.WorkAreaId + ) as t where PTP_ID=@PTP_ID "; + SqlParameter[] parms = new SqlParameter[]{ + new SqlParameter("@PTP_ID",this.tvControlItem.SelectedNodeID) + }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + //获取试压包第一行记录 + + #region 分页数据 + var tbNum = dt.Rows.Count; + var pageNum =tbNum < 34 ? 1 + : Math.Ceiling((float)(tbNum - 34) / 34) + 1; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 14, style, 0, 17, true); - ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); - ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); - //设置列宽度 - ws.SetColumnWidth(0, 3 * 256); - ws.SetColumnWidth(1, 3 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 8 * 256); - ws.SetColumnWidth(6, 8 * 256); - ws.SetColumnWidth(7, 4 * 256); - ws.SetColumnWidth(8, 8 * 256); - ws.SetColumnWidth(9, 8 * 256); - ws.SetColumnWidth(10, 8 * 256); - ws.SetColumnWidth(11, 8 * 256); - ws.SetColumnWidth(12, 1 * 256); - ws.SetColumnWidth(13, 9 * 256); - ws.SetColumnWidth(14, 9 * 256); - ws.SetColumnWidth(15, 10 * 256); - ws.SetColumnWidth(16, 6 * 256); - ws.SetColumnWidth(17, 6 * 256); - //设置前3行高度 - ws.GetRow(0).Height = 15 * 20; - ws.GetRow(1).Height = 15 * 20; - ws.GetRow(2).Height = 14 * 20; - - //设置3-15行的行高度 - for (int i = 3; i < 15; i++) + for (int i = 1; i <= pageNum; i++) { - ws.GetRow(i).Height = 18 * 20; + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 15, style, 0, 17, true); + ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); + ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); + + #region 设置样式 + //设置列宽度 + ws.SetColumnWidth(0, 3 * 256); + ws.SetColumnWidth(1, 3 * 256); + ws.SetColumnWidth(2, 8 * 256); + ws.SetColumnWidth(3, 5 * 256); + ws.SetColumnWidth(4, 5 * 256); + ws.SetColumnWidth(5, 8 * 256); + ws.SetColumnWidth(6, 8 * 256); + ws.SetColumnWidth(7, 4 * 256); + ws.SetColumnWidth(8, 8 * 256); + ws.SetColumnWidth(9, 8 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 1 * 256); + ws.SetColumnWidth(13, 9 * 256); + ws.SetColumnWidth(14, 10 * 256); + ws.SetColumnWidth(15, 10 * 256); + ws.SetColumnWidth(16, 10 * 256); + ws.SetColumnWidth(17, 3 * 256); + //设置前3行高度 + ws.GetRow(rowIndex + 0).Height = 15 * 20; + ws.GetRow(rowIndex + 1).Height = 15 * 20; + ws.GetRow(rowIndex + 2).Height = 14 * 20; + ws.GetRow(rowIndex + 3).Height = 18 * 20; + ws.GetRow(rowIndex + 4).Height = 18 * 20; + ws.GetRow(rowIndex + 5).Height = 18 * 20; + ws.GetRow(rowIndex + 6).Height = 18 * 20; + ws.GetRow(rowIndex + 7).Height = 18 * 20; + ws.GetRow(rowIndex + 8).Height = 18 * 20; + ws.GetRow(rowIndex + 9).Height = 18 * 20; + ws.GetRow(rowIndex + 10).Height = 18 * 20; + ws.GetRow(rowIndex + 11).Height = 18 * 20; + ws.GetRow(rowIndex + 12).Height = 18 * 20; + ws.GetRow(rowIndex + 13).Height = 18 * 20; + ws.GetRow(rowIndex + 14).Height = 18 * 20; + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex+0, rowIndex+0, 1, 1), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex+1, rowIndex+1, 17, 17), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex+1, rowIndex + 1, 16, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 17, 17), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 2, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 1, rowIndex + 14, 0, 0), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 1, 1), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 16, 16), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 17, 17), ws); + + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 2, 2), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 8, rowIndex + 8, 2, 16), ws); + #endregion + + #region 插入图片 + InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 10, 2, 30, 2); + InsertImage(hssfworkbook, ws, 3, 14, 4, 14, img3, 1.5, 2, 8, 2); + InsertImage(hssfworkbook, ws, 3, 15, 4, 15, img4, 3, 2, 35, 2); + #endregion + + #region 试压包头部分 + + string TestPackageNo = string.Empty; + string WorkAreaCode = string.Empty; + string SystemNo = string.Empty; + string TestHeat = string.Empty; + string TestType = string.Empty; + if (dt.Rows.Count > 0) + { + TestPackageNo = dt.Rows[0]["TestPackageNo"].ToString(); + WorkAreaCode = dt.Rows[0]["WorkAreaCode"].ToString(); + SystemNo = dt.Rows[0]["SystemNumber"].ToString(); + TestHeat = dt.Rows[0]["TestHeat"].ToString(); + TestType = dt.Rows[0]["TestType"].ToString(); + } + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); + var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); + ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); + ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); + ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包流程图清单"); + ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); + ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE P&ID DRAWING LIST"); + ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; + + var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); + ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); + ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue(TestPackageNo); + ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); + ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(WorkAreaCode); + + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); + ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); + ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); + ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue(SystemNo); + ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); + ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(TestHeat); + ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); + ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); + ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); + ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue(TestType); + ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); + ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 8, 8), ws); + #endregion + #endregion + + #region 表格部分 + //数据表头部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); + ws.GetRow(rowIndex+15).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(rowIndex + 15).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 9, 13)); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 16, 16), ws); + ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); + ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("P&ID Drawing No.\r\n流程图号"); + ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Drawing Description\r\n图纸名称"); + ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); + ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); + ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); + ws.GetRow(rowIndex + 15).Height = 40 * 20; + + style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11,false, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex+16, rowIndex + 50, style, 0, 17, true); + + var dataTit = rowIndex + 16; + + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 34; + } + else + { + dStart = i == 2 ? 34 : ((i - 2) * 34) + 34; + dEnd = ((i - 1) * 34) + 34; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int nextRow = 0; + int lastRow = 0; + int j = 0; + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(2).SetCellValue($"{j + 1}"); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["SingleNumber"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["DrawingsNum"].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["PageNum"].ToString()); + ws.GetRow(dataIndex).GetCell(16).SetCellValue(dr["Remark"].ToString()); + ws.GetRow(dataIndex).Height = 14 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 9, 13)); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + nextRow = dataIndex; + j++; + } + //如果pageData不满足33行数据的情况下,将设置剩余行高 + if (pageTb.Rows.Count < 34) + { + for (int k = 1; k <= 34 - pageTb.Rows.Count; k++) + { + int dataIndex = rowIndex + nextRow + k; + ws.GetRow(dataIndex).Height = 14 * 20; + ws.GetRow(dataIndex).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 9, 13)); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + lastRow = nextRow + k; + } + } + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + lastRow, rowIndex + lastRow, 2, 16), ws); + #endregion + + #region 尾部 + + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex+50, rowIndex + 55, style, 0, 17, true); + ws.GetRow(rowIndex + 50).Height = 18 * 20; + ws.GetRow(rowIndex + 51).Height = 18 * 20; + ws.GetRow(rowIndex + 52).Height = 18 * 20; + ws.GetRow(rowIndex + 53).Height = 18 * 20; + ws.GetRow(rowIndex + 54).Height = 18 * 20; + ws.GetRow(rowIndex + 55).Height = 4 * 20; + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 1, 1),ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 18, 18), ws); + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 2, 2), ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 17, 17), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 52, rowIndex + 52, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 13, 13), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 13, 13), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 53, rowIndex + 54, 2, 16), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 13, 13), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 55, rowIndex + 55, 1, 17), ws); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); + + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); + ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); + ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); + ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); + ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); + ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); + ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); + + + #endregion + + rowIndex = rowIndex + 60; } - - RegionUtil.SetBorderBottom(2, new CellRangeAddress(0, 0, 1, 1), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 1, 17, 17), ws); - - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 16, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 17, 17), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 2, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(2, 2, 2, 16), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 14, 0, 0), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 1, 1), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 16, 16), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 17, 17), ws); - - - RegionUtil.SetBorderLeft(2, new CellRangeAddress(9, 14, 2, 2), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(7, 7, 2, 16), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(8, 8, 2, 16), ws); - //插入图片 - InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); - InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 1.9, 1.9); - InsertImage(hssfworkbook, ws, 3, 13, 4, 14, img3, 1.5, 1.5); - InsertImage(hssfworkbook, ws, 3, 15, 4, 16, img4, 1.5, 1.5); - - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); - var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); - ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包流程图清单"); - ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE P&ID DRAWING LIST"); - ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; - - var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); - ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); - ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("UG-130-FW-HT-001"); - ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); - ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; - ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("C400"); - - ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); - ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); - ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); - ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("FIRE WATER"); - ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); - ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue("2"); - ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); - ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); - ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); - ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue("Hydro Test"); - ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); - ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; - - #endregion - - #region 表格部分 - - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, 15, rowIndex + 49, style, 0, 17, true); - for (int i = 15; i < 50; i++) - { - ws.GetRow(i).Height = 20 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 13)); - } - ws.GetRow(15).Height = 40 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); - //数据表头部分 - ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); - ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("P&ID Drawing No.\r\n流程图号"); - ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Drawing Description\r\n图纸名称"); - ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); - ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); - ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); - - #endregion - - #region 尾部 - - //此处的尾部行数需要根据 得到的动态数据量 来计算,默认写死从50行开始。 - ws = ExcelCreateRow(ws, hssfworkbook, 49, rowIndex + 55, style, 0, 17, true); - for (int i = 49; i <= 55; i++) - { - ws.GetRow(i).Height = 18 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - } - - for (int i = 2; i < 17; i++) - { - ws.GetRow(rowIndex + 55).GetCell(i).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - } - ws.GetRow(rowIndex + 55).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(16).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.None, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); - ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); - ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); - ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); - ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); - ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); - ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - + ws.PrintSetup.Scale = 85; ws.FitToPage = true; - //垂直水平居中 ws.VerticallyCenter = true; ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + ////打印边距设置 厘米/3 + //ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); + //ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); //页眉页脚间距 ws.SetMargin(MarginType.HeaderMargin, 0); @@ -1368,210 +1538,366 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage int rowIndex = 0; var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); - #region 头部 + //查询数据 + string sql = @"select * from ( + select + a.PTP_ID, + a.TestPackageNo, + d.WorkAreaId, + d.WorkAreaCode, + c.PipelineId, + c.PipelineCode, + c.SystemNumber, + a.TestHeat, + a.TestType, + c.SingleNumber, + c.DrawingsNum, + a.Remark, + (select top 1 PageNum from Pipeline_WeldJoint where PipelineId=b.PipelineId order by WeldJointCode) as PageNum + from PTP_TestPackage as a + inner join + PTP_PipelineList as b on a.PTP_ID=b.PTP_ID + left join + Pipeline_Pipeline as c on b.PipelineId=c.PipelineId + left join Project_WorkArea as d on b.WorkAreaId=d.WorkAreaId + ) as t where PTP_ID=@PTP_ID "; + SqlParameter[] parms = new SqlParameter[]{ + new SqlParameter("@PTP_ID",this.tvControlItem.SelectedNodeID) + }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + //获取试压包第一行记录 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 14, style, 0, 17, true); - ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); - ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); - //设置列宽度 - ws.SetColumnWidth(0, 3 * 256); - ws.SetColumnWidth(1, 3 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 8 * 256); - ws.SetColumnWidth(6, 8 * 256); - ws.SetColumnWidth(7, 4 * 256); - ws.SetColumnWidth(8, 8 * 256); - ws.SetColumnWidth(9, 8 * 256); - ws.SetColumnWidth(10, 8 * 256); - ws.SetColumnWidth(11, 8 * 256); - ws.SetColumnWidth(12, 1 * 256); - ws.SetColumnWidth(13, 9 * 256); - ws.SetColumnWidth(14, 9 * 256); - ws.SetColumnWidth(15, 10 * 256); - ws.SetColumnWidth(16, 6 * 256); - ws.SetColumnWidth(17, 6 * 256); - //设置前3行高度 - ws.GetRow(0).Height = 15 * 20; - ws.GetRow(1).Height = 15 * 20; - ws.GetRow(2).Height = 14 * 20; + #region 分页数据 + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 34 ? 1 + : Math.Ceiling((float)(tbNum - 34) / 34) + 1; - //设置3-15行的行高度 - for (int i = 3; i < 15; i++) + for (int i = 1; i <= pageNum; i++) { - ws.GetRow(i).Height = 18 * 20; + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 15, style, 0, 17, true); + ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); + ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); + + #region 设置样式 + //设置列宽度 + ws.SetColumnWidth(0, 3 * 256); + ws.SetColumnWidth(1, 1 * 256); + ws.SetColumnWidth(2, 8 * 256); + ws.SetColumnWidth(3, 5 * 256); + ws.SetColumnWidth(4, 5 * 256); + ws.SetColumnWidth(5, 8 * 256); + ws.SetColumnWidth(6, 8 * 256); + ws.SetColumnWidth(7, 4 * 256); + ws.SetColumnWidth(8, 8 * 256); + ws.SetColumnWidth(9, 8 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 1 * 256); + ws.SetColumnWidth(13, 9 * 256); + ws.SetColumnWidth(14, 10 * 256); + ws.SetColumnWidth(15, 10 * 256); + ws.SetColumnWidth(16, 10 * 256); + ws.SetColumnWidth(17, 1 * 256); + //设置前3行高度 + ws.GetRow(rowIndex + 0).Height = 15 * 20; + ws.GetRow(rowIndex + 1).Height = 4 * 20; + ws.GetRow(rowIndex + 2).Height = 14 * 20; + ws.GetRow(rowIndex + 3).Height = 18 * 20; + ws.GetRow(rowIndex + 4).Height = 18 * 20; + ws.GetRow(rowIndex + 5).Height = 18 * 20; + ws.GetRow(rowIndex + 6).Height = 18 * 20; + ws.GetRow(rowIndex + 7).Height = 18 * 20; + ws.GetRow(rowIndex + 8).Height = 18 * 20; + ws.GetRow(rowIndex + 9).Height = 18 * 20; + ws.GetRow(rowIndex + 10).Height = 18 * 20; + ws.GetRow(rowIndex + 11).Height = 18 * 20; + ws.GetRow(rowIndex + 12).Height = 18 * 20; + ws.GetRow(rowIndex + 13).Height = 18 * 20; + ws.GetRow(rowIndex + 14).Height = 18 * 20; + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 0, rowIndex + 0, 1, 1), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 17, 17), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 16, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 17, 17), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 2, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 1, rowIndex + 14, 0, 0), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 1, 1), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 16, 16), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 17, 17), ws); + + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 2, 2), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 8, rowIndex + 8, 2, 16), ws); + #endregion + + #region 插入图片 + InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 10, 2, 30, 2); + InsertImage(hssfworkbook, ws, 3, 14, 4, 14, img3, 1.5, 2, 8, 2); + InsertImage(hssfworkbook, ws, 3, 15, 4, 15, img4, 3, 2, 35, 2); + #endregion + + #region 试压包头部分 + + string TestPackageNo = string.Empty; + string WorkAreaCode = string.Empty; + string SystemNo = string.Empty; + string TestHeat = string.Empty; + string TestType = string.Empty; + if (dt.Rows.Count > 0) + { + TestPackageNo = dt.Rows[0]["TestPackageNo"].ToString(); + WorkAreaCode = dt.Rows[0]["WorkAreaCode"].ToString(); + SystemNo = dt.Rows[0]["SystemNumber"].ToString(); + TestHeat = dt.Rows[0]["TestHeat"].ToString(); + TestType = dt.Rows[0]["TestType"].ToString(); + } + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); + var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); + ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); + ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); + ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包单线图清单"); + ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); + ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE ISOMETRIC LIST"); + ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; + + var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); + ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); + ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue(TestPackageNo); + ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); + ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(WorkAreaCode); + + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); + ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); + ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); + ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue(SystemNo); + ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); + ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(TestHeat); + ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); + ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); + ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); + ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue(TestType); + ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); + ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 8, 8), ws); + #endregion + #endregion + + #region 表格部分 + //数据表头部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); + ws.GetRow(rowIndex + 15).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(rowIndex + 15).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 9, 13)); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 16, 16), ws); + ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); + ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Isometric Drawing No\r\n单线图号"); + ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Line Number No\r\n管线号"); + ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); + ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); + ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); + ws.GetRow(rowIndex + 15).Height = 40 * 20; + + style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, false, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 16, rowIndex + 50, style, 0, 17, true); + + var dataTit = rowIndex + 16; + + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 34; + } + else + { + dStart = i == 2 ? 34 : ((i - 2) * 34) + 34; + dEnd = ((i - 1) * 34) + 34; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int nextRow = 0; + int lastRow = 0; + int j = 0; + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(2).SetCellValue($"{j + 1}"); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["SingleNumber"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["DrawingsNum"].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["PageNum"].ToString()); + ws.GetRow(dataIndex).GetCell(16).SetCellValue(dr["Remark"].ToString()); + ws.GetRow(dataIndex).Height = 14 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 9, 13)); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + nextRow = dataIndex; + j++; + } + //如果pageData不满足33行数据的情况下,将设置剩余行高 + if (pageTb.Rows.Count < 34) + { + for (int k = 1; k <= 34 - pageTb.Rows.Count; k++) + { + int dataIndex = rowIndex + nextRow + k; + ws.GetRow(dataIndex).Height = 14 * 20; + ws.GetRow(dataIndex).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 9, 13)); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + lastRow = nextRow + k; + } + } + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + lastRow, rowIndex + lastRow, 2, 16), ws); + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 50, rowIndex + 55, style, 0, 17, true); + ws.GetRow(rowIndex + 50).Height = 18 * 20; + ws.GetRow(rowIndex + 51).Height = 18 * 20; + ws.GetRow(rowIndex + 52).Height = 18 * 20; + ws.GetRow(rowIndex + 53).Height = 18 * 20; + ws.GetRow(rowIndex + 54).Height = 18 * 20; + ws.GetRow(rowIndex + 55).Height = 4 * 20; + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 1, 1), ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 18, 18), ws); + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 2, 2), ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 17, 17), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 52, rowIndex + 52, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 13, 13), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 13, 13), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 53, rowIndex + 54, 2, 16), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 13, 13), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 55, rowIndex + 55, 1, 17), ws); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); + + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); + ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); + ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); + ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); + ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); + ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); + ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); + + #endregion + + rowIndex = rowIndex + 60; } - - RegionUtil.SetBorderBottom(2, new CellRangeAddress(0, 0, 1, 1), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 1, 17, 17), ws); - - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 16, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 17, 17), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 2, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(2, 2, 2, 16), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 14, 0, 0), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 1, 1), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 16, 16), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 17, 17), ws); - - - RegionUtil.SetBorderLeft(2, new CellRangeAddress(9, 14, 2, 2), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(7, 7, 2, 16), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(8, 8, 2, 16), ws); - //插入图片 - InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); - InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 1.9, 1.9); - InsertImage(hssfworkbook, ws, 3, 13, 4, 14, img3, 1.5, 1.5); - InsertImage(hssfworkbook, ws, 3, 15, 4, 16, img4, 1.5, 1.5); - - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); - var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); - ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包单线图清单"); - ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE ISOMETRIC LIST"); - ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; - - var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); - ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); - ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("UG-130-FW-HT-001"); - ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); - ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; - ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("C400"); - - ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); - ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); - ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); - ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("FIRE WATER"); - ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); - ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue("2"); - ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); - ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); - ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); - ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue("Hydro Test"); - ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); - ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; - - #endregion - - #region 表格部分 - - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, 15, rowIndex + 49, style, 0, 17, true); - for (int i = 15; i < 50; i++) - { - ws.GetRow(i).Height = 22 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 13)); - } - ws.GetRow(15).Height = 30 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); - //数据表头部分 - ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); - ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Isometric Drawing No.\r\n单线图号"); - ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Line Number No\r\n 管线号"); - ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); - ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); - ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); - - #endregion - - #region 尾部 - - //此处的尾部行数需要根据 得到的动态数据量 来计算,默认写死从50行开始。 - ws = ExcelCreateRow(ws, hssfworkbook, 49, rowIndex + 55, style, 0, 17, true); - for (int i = 49; i <= 55; i++) - { - ws.GetRow(i).Height = 18 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - } - - for (int i = 2; i < 17; i++) - { - ws.GetRow(rowIndex + 55).GetCell(i).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - } - ws.GetRow(rowIndex + 55).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(16).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.None, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); - ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); - ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); - ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); - ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); - ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); - ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - + ws.PrintSetup.Scale = 85; ws.FitToPage = true; - //垂直水平居中 ws.VerticallyCenter = true; ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + ////打印边距设置 厘米/3 + //ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); + //ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); //页眉页脚间距 ws.SetMargin(MarginType.HeaderMargin, 0); @@ -2792,556 +3118,347 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage } - //21-管道焊接工作记录SHT 3503-J415 - private void template21_old(XSSFWorkbook hssfworkbook, XSSFSheet ws) - { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 0, 12, true); - - //设置列宽 - ws.SetColumnWidth(0, 17 * 256); - ws.SetColumnWidth(1, 12 * 256); - ws.SetColumnWidth(2, 10 * 256); - ws.SetColumnWidth(3, 17 * 256); - ws.SetColumnWidth(4, 14 * 256); - ws.SetColumnWidth(5, 12 * 256); - ws.SetColumnWidth(6, 15 * 256); - ws.SetColumnWidth(7, 12 * 256); - ws.SetColumnWidth(8, 13 * 256); - ws.SetColumnWidth(9, 12 * 256); - ws.SetColumnWidth(10, 12 * 256); - ws.SetColumnWidth(11, 17 * 256); - ws.SetColumnWidth(12, 12 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 1)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 2, 9)); - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道焊接工作记录\r\nPiping Welding Record"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(1, 1, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(2, 2, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 10, 12)); - - ws.GetRow(rowIndex).GetCell(10).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); - ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("Project Name:BASF (Guangdong) Integrated Project"); - ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("单位工程名称:埋地消防系统"); - ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("Unit Name:FW"); - - - - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 5, style, 0, 12, true); - - ws.GetRow(rowIndex + 4).Height = 30 * 20; - ws.GetRow(rowIndex + 5).Height = 45 * 20; - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(4, 5, 0, 0)); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 1, 2)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 3, 3)); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊工代号\r\nWelder's Stamp No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 4, 4)); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格mm\r\nSpecification\r\nmm"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 5, 5)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("材质\r\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 6, 6)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("焊接位置\r\nWelding\r\nPosition"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 7, 8)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接方法\r\nWelding Process"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 9, 10)); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊材牌号\r\nWelding Material Designation"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 11, 11)); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 12, 12)); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("焊接日期\r\nWelding Date"); - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 12, true); - for (int i = 6; i < 24; i++) - { - ws.GetRow(rowIndex + i).Height = 19 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); - } - - #endregion - - #region 尾部 - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 24, rowIndex + 30, style, 0, 12, true); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 4, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 9, 12)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 24).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 24).GetCell(9).SetCellValue("施工单位\r\nConstruction Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 1)); - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 25).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 9, 12)); - ws.GetRow(rowIndex + 25).GetCell(9).SetCellValue("记录人 :\r\nRecord Prepared by:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 9, 12)); - ws.GetRow(rowIndex + 27).GetCell(9).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 29, rowIndex + 29, 9, 12)); - ws.GetRow(rowIndex + 27).GetCell(9).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 3)); - ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 4, 8)); - ws.GetRow(rowIndex + 30).GetCell(4).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 9, 12)); - ws.GetRow(rowIndex + 30).GetCell(9).SetCellValue("日期Date: 年 月 日"); - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 12), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 12, 12), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 12), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 8, 8), ws); - - ws.GetRow(rowIndex + 26).Height = ws.GetRow(rowIndex + 28).Height = ws.GetRow(rowIndex + 29).Height = 2 * 20; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 - ws.PrintSetup.Landscape = true; - //垂直水平居中 - ws.VerticallyCenter = true; - ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); - - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); - } - //21-管道焊接工作记录SHT 3503-J415 private void template21(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 15, true, false, "宋体"); - var styleTwo = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 9.5, true, false, "宋体"); - var styleThree = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9.5, true, false, "宋体"); - var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10.5, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 0, 14, true); - - //设置列宽 - ws.SetColumnWidth(0, 18 * 256); - ws.SetColumnWidth(1, 9 * 256); - ws.SetColumnWidth(2, 6 * 256); - ws.SetColumnWidth(3, 12 * 256); - ws.SetColumnWidth(4, 18 * 256); - ws.SetColumnWidth(5, 19 * 256); - ws.SetColumnWidth(6, 13 * 256); - ws.SetColumnWidth(7, 13 * 256); - ws.SetColumnWidth(8, 14 * 256); - ws.SetColumnWidth(9, 13 * 256); - ws.SetColumnWidth(10, 13 * 256); - ws.SetColumnWidth(11, 10 * 256); - ws.SetColumnWidth(12, 16 * 256); - ws.SetColumnWidth(13, 14 * 256); - ws.SetColumnWidth(14, 19 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 1)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); - ws.GetRow(rowIndex).GetCell(0).CellStyle = styleThree; - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 2, 10)); - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道焊接工作记录\r\nPiping Welding Record"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(1, 1, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(2, 2, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 11, 14)); - - ws.GetRow(rowIndex).GetCell(11).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); - ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("Project Name:BASF (Guangdong) Integrated Project"); - ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("单位工程名称:埋地消防系统"); - ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Unit Name:FW"); - ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = styleTwo; - - ws.GetRow(rowIndex).Height = ws.GetRow(rowIndex + 1).Height = ws.GetRow(rowIndex + 2).Height = ws.GetRow(rowIndex + 3).Height = 25 * 20; - //画线 - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14), ws); + string sql = @" SELECT + WeldSilkId, + a.PipelineCode, + e.WorkAreaCode, + a.WeldJointCode, + a.Specification, + a.Material1Code, + a.WeldingMethodCode, + a.WeldingDate, + a.WeldSilkCode, + a.WeldMatCode, + a.BackingWelderCode, + a.CoverWelderCode, + a.ProjectName, + (select top 1 EnProjectName from Base_Project where ProjectId=b.ProjectId ) as EnProjectName, + (select top 1 WorkAreaName from Project_WorkArea where WorkAreaId=c.WorkAreaId) as WorkAreaName, + (select top 1 EnWorkAreaName from Project_WorkArea where WorkAreaId=c.WorkAreaId) as EnWorkAreaName, + a.IsHotProess,(case a.IsHotProess when 1 then '是' else '否' end) as IsHotProessName,PrepareTemp, + WeldingLocationCode,a.WeldTypeCode, + (SELECT TOP 1 n.NDEReportNo FROM dbo.Batch_NDEItem n WHERE n.TrustBatchItemId= + (SELECT TOP 1 bt.TrustBatchItemId FROM dbo.Batch_BatchTrustItem bt WHERE bt.WeldJointId=a.WeldJointId)) AS NDEReportNo + FROM PTP_TestPackage as b inner join + PTP_PipelineList as c on b.PTP_ID=c.PTP_ID + inner join View_Pipeline_WeldJoint as a on c.PipelineId=a.PipelineId + left join Project_WorkArea as e on e.WorkAreaId=c.WorkAreaId + WHERE Is_hjName='是' and b.PTP_ID=@PTPID and a.projectId=@projectId + "; - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 5, style4, 0, 14, true); - - ws.GetRow(rowIndex + 4).Height = 25 * 20; - ws.GetRow(rowIndex + 5).Height = 25 * 20; - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(4, 5, 0, 0)); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 1, 2)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 3, 3)); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊接形式\r\nWeld Type."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 4, 4)); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("焊工代号\r\nWelder's Stamp No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 5, 5)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格mm\r\nSpecification mm"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 6, 6)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("材质\r\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 7, 7)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接位置\r\nWelding\r\nPosition"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 8, 9)); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("焊接方法\r\nWelding Process"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 10, 11)); - ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("焊材牌号\r\nWelding Material Designation"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 12, 12)); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 13, 13)); - ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("焊接日期\r\nWelding Date"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 14, 14)); - ws.GetRow(rowIndex + 4).GetCell(14).SetCellValue("无损检查报告\r\nNDE Report."); - - ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = ws.GetRow(rowIndex + 4).GetCell(1).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = ws.GetRow(rowIndex + 4).GetCell(4).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = ws.GetRow(rowIndex + 4).GetCell(6).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = ws.GetRow(rowIndex + 4).GetCell(8).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(10).CellStyle = ws.GetRow(rowIndex + 4).GetCell(12).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(13).CellStyle = ws.GetRow(rowIndex + 4).GetCell(14).CellStyle = styleThree; - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 14, true); - for (int i = 6; i < 24; i++) + SqlParameter[] parms = { + new SqlParameter("@PTPID", this.tvControlItem.SelectedNodeID), + new SqlParameter("@projectId", this.CurrUser.LoginProjectId) + }; + DataTable tb = SQLHelper.GetDataTableRunText(sql, parms); + + if (tb.Rows.Count > 0) { - ws.GetRow(rowIndex + i).Height = 19 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 11)); + int rowIndex = 0; + + #region 列宽 + + ws.SetColumnWidth(0, 18 * 256); + ws.SetColumnWidth(1, 9 * 256); + ws.SetColumnWidth(2, 6 * 256); + ws.SetColumnWidth(3, 12 * 256); + ws.SetColumnWidth(4, 18 * 256); + ws.SetColumnWidth(5, 15 * 256); + ws.SetColumnWidth(6, 15 * 256); + ws.SetColumnWidth(7, 13 * 256); + ws.SetColumnWidth(8, 10 * 256); + ws.SetColumnWidth(9, 10 * 256); + ws.SetColumnWidth(10, 13 * 256); + ws.SetColumnWidth(11, 10 * 256); + ws.SetColumnWidth(12, 16 * 256); + ws.SetColumnWidth(13, 14 * 256); + ws.SetColumnWidth(14, 19 * 256); + + #endregion + + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var headerStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true, false); + + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 17 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + + string ProjectName = tb.Rows.Count > 0 ? tb.Rows[0]["ProjectName"].ToString() : ""; + string EnProjectName = tb.Rows.Count > 0 ? tb.Rows[0]["EnProjectName"].ToString() : ""; + string WorkAreaName = tb.Rows.Count > 0 ? tb.Rows[0]["WorkAreaName"].ToString() : ""; + string EnWorkAreaName = tb.Rows.Count > 0 ? tb.Rows[0]["EnWorkAreaName"].ToString() : ""; + //循环页 + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 14, true); + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); + ws.GetRow(rowIndex).GetCell(0).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10,true, true); + region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 10); + ws.AddMergedRegion(region); + string titleStr = i == 1 ? "管道焊接工作记录\r\nPiping Welding Record" : "管道焊接工作记录(续)\r\nPiping Welding Record"; + ws.GetRow(rowIndex).GetCell(3).SetCellValue(titleStr); + ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 15, true, true); + region = new CellRangeAddress(rowIndex, rowIndex, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(11).SetCellValue($"工程名称:{ProjectName}"); + ws.GetRow(rowIndex).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9.5, true, false); + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue($"Project Name:{EnProjectName}"); + ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9.5, true, false); + + ws.GetRow(rowIndex + 1).Height = 25 * 20; + ws.GetRow(rowIndex + 2).Height = 25 * 20; + ws.GetRow(rowIndex + 3).Height = 25 * 20; + ws.GetRow(rowIndex + 4).Height = 25 * 20; + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue($"单位工程名称:{WorkAreaName}"); + ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行3 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue($"Unit Name:{EnWorkAreaName}"); + ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //画线 + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14), ws); + + //行4行5 + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊接形式\r\nWeld Type."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("焊工代号\r\nWelder's Stamp No."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格mm\r\nSpecification\r\nmm"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("材质\r\nMaterial"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接位置\r\nWelding\r\nPosition"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 8, 9); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("焊接方法\r\nWelding Process"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 10, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("焊材牌号\r\nWelding Material Designation"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 13, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("焊接日期\r\nWelding Date"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 14, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(14).SetCellValue("无损检查报告\r\nNDE Report."); + + ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = ws.GetRow(rowIndex + 4).GetCell(1).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = ws.GetRow(rowIndex + 4).GetCell(4).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = ws.GetRow(rowIndex + 4).GetCell(6).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = ws.GetRow(rowIndex + 4).GetCell(8).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(10).CellStyle = ws.GetRow(rowIndex + 4).GetCell(12).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(13).CellStyle = ws.GetRow(rowIndex + 4).GetCell(14).CellStyle + = headerStyle; + + ws.GetRow(rowIndex + 4).Height = 25 * 20; + ws.GetRow(rowIndex + 5).Height = 25 * 20; + #endregion + + #region 表格 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 21, style, 0, 14); + var dataTit = rowIndex + 6; + var tIndex = 5 + 16; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 16; + } + else + { + dStart = i == 2 ? 16 : ((i - 2) * 16) + 16; + dEnd = ((i - 1) * 16) + 16; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 2); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 11); + ws.AddMergedRegion(region); + } + + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + int j = 0; + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + //管道编号/单线号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString()); + //焊口编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(dr["WeldJointCode"].ToString()); + //焊接形式 + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["WeldTypeCode"].ToString()); + //焊工代号 + List welderStr = new List(); + if (!string.IsNullOrWhiteSpace(dr["BackingWelderCode"].ToString())) + { + welderStr.Add(dr["BackingWelderCode"].ToString()); + } + if (!string.IsNullOrWhiteSpace(dr["CoverWelderCode"].ToString())) + { + welderStr.Add(dr["CoverWelderCode"].ToString()); + } + if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(string.Join("/", welderStr)); + //规格mm + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["Specification"].ToString()); + //材质 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(dr["Material1Code"].ToString()); + //焊接位置 + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["WeldingLocationCode"].ToString()); + //焊接方法 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(dr["WeldingMethodCode"].ToString()); + //焊材牌号 + List silkMats = new List(); + if (!string.IsNullOrWhiteSpace(dr["WeldSilkCode"].ToString())) + { + silkMats.Add(dr["WeldSilkCode"].ToString()); + } + if (!string.IsNullOrWhiteSpace(dr["WeldMatCode"].ToString())) + { + silkMats.Add(dr["WeldMatCode"].ToString()); + } + if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(10).SetCellValue(string.Join("/", silkMats)); + //实际预热温度 + ws.GetRow(dataIndex).GetCell(12).SetCellValue(dr["PrepareTemp"].ToString()); + //焊接日期 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["WeldingDate"].ToString()); + //无损检查报告 + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["NDEReportNo"].ToString()); + j++; + ws.GetRow(dataIndex).Height = 20 * 20; + } + + + for (int k = rowIndex + 6; k <= rowIndex + 21; k++) + { + ws.GetRow(k).Height = 20 * 20; + } + rowIndex += tIndex; + + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 7, style, 0, 14, false); + + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 7; hb++) + { + for (int c = 0; c <= 14; c++) + { + if (hb >= rowIndex + 1 && hb <= rowIndex + 6) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false); + } + if (hb == rowIndex + 7) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 14); + ws.AddMergedRegion(region); + } + + //行1 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("建设/监理单位"); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("施工单位\r\nConstruction Contractor"); + //行2 + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("记录人 :\r\nRecord Prepared by:"); + //行3 + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("质量检查员:\r\nQuality Inspector:"); + //行5 + ws.GetRow(rowIndex + 6).GetCell(10).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); + //行6 + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("日期Date: 年 月 日"); + ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("日期Date: 年 月 日"); + ws.GetRow(rowIndex + 7).GetCell(10).SetCellValue("日期Date: 年 月 日"); + + #endregion + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 9, style, 0, 14, false); + rowIndex += 10; + ws.SetRowBreak(rowIndex - 1); + } + + ws.PrintSetup.FitWidth = 1; + ws.PrintSetup.FitHeight = 0; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + ws.FitToPage = true; + + //横向打印 + ws.PrintSetup.Landscape = true; + //垂直水平居中 + ws.VerticallyCenter = true; + ws.HorizontallyCenter = true; + //打印边距设置 厘米/3 + ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); + ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + + //页眉页脚间距 + ws.SetMargin(MarginType.HeaderMargin, 0); + ws.SetMargin(MarginType.FooterMargin, 0); } - - #endregion - - #region 尾部 - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 24, rowIndex + 30, style, 0, 14, true); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 5, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 10, 14)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 24).GetCell(0).CellStyle = style1; - ws.GetRow(rowIndex + 24).GetCell(5).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 24).GetCell(5).CellStyle = style1; - ws.GetRow(rowIndex + 24).GetCell(10).SetCellValue("施工单位\r\nConstruction Contractor"); - ws.GetRow(rowIndex + 24).GetCell(10).CellStyle = style1; - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 14), ws); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 1)); - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 25).Height = 31 * 20; - ws.GetRow(rowIndex + 27).Height = 31 * 20; - ws.GetRow(rowIndex + 29).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 5, 6)); - ws.GetRow(rowIndex + 25).GetCell(5).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 10, 14)); - ws.GetRow(rowIndex + 25).GetCell(10).SetCellValue("记录人 :\r\nRecord Prepared by:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 10, 14)); - ws.GetRow(rowIndex + 27).GetCell(10).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 29, rowIndex + 29, 10, 14)); - ws.GetRow(rowIndex + 29).GetCell(10).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 4)); - ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 5, 9)); - ws.GetRow(rowIndex + 30).GetCell(5).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 10, 14)); - ws.GetRow(rowIndex + 30).GetCell(10).SetCellValue("日期Date: 年 月 日"); - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 14), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 14, 14), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 14), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 4, 4), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 9, 9), ws); - - ws.GetRow(rowIndex + 26).Height = ws.GetRow(rowIndex + 28).Height = 5 * 20; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 - ws.PrintSetup.Landscape = true; - //垂直水平居中 - ws.VerticallyCenter = true; - ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); - - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); } - //22-射线检测比例确认表SHT 3503-J412-2007 - private void template22_old(XSSFWorkbook hssfworkbook, XSSFSheet ws) - { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 4, style, 0, 20, true); - - //设置列宽 - ws.SetColumnWidth(0, 11 * 256); - ws.SetColumnWidth(1, 5 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 6 * 256); - ws.SetColumnWidth(6, 6 * 256); - ws.SetColumnWidth(7, 6 * 256); - ws.SetColumnWidth(8, 6 * 256); - ws.SetColumnWidth(9, 6 * 256); - ws.SetColumnWidth(10, 6 * 256); - ws.SetColumnWidth(11, 6 * 256); - ws.SetColumnWidth(12, 21 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 2)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J412-1-2007"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 3, 17)); - ws.GetRow(rowIndex).GetCell(3).SetCellValue("管道焊接接头射线检测比例确认表(一)"); - ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); - ws.AddMergedRegion(new CellRangeAddress(1, 2, 3, 17)); - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("Pipeline Welding Joints Radiographic Examination Rate Confirmation Form(I)"); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 18, 20)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 3, 17)); - - ws.GetRow(rowIndex).GetCell(18).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区\nProject Name:BASF (Guangdong) Integrated Project\n单元名称:Citral\nUnit Name:Citral"); - ws.GetRow(rowIndex).GetCell(18).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("共 1 页 第 1 页"); - - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("执行标准\r\nApplicable code"); - - ws.AddMergedRegion(new CellRangeAddress(4, 4, 1, 5)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 6, 7)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 8, 15)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 16, 17)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 18, 20)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("NB/T47013.2-2015"); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("检测方法\r\nExam. Method"); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("射线检测\r\nRT"); - ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("检测比例\r\nExam. Rate"); - ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue("5%"); - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 6, style, 0, 20, true); - - ws.GetRow(rowIndex + 5).Height = 28 * 20; - ws.GetRow(rowIndex + 6).Height = 42 * 20; - - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 0, 1)); - ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("管道编号\r\nPipeline No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 2, 2)); - ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("材质\r\nMaterial"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 4)); - ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("规 格/Size"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 4)); - ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("mm"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 8)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("管道焊接接头\r\nWelding Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 12)); - ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("施焊焊工\r\nWelder"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 16)); - ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测焊接接头\r\nExanined Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 19)); - ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("实际检测比例"); - - ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("检测报告编号"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 6)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("总数\r\nTotal"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 7, 8)); - ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 9, 10)); - ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊工代号\r\nWelder No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12)); - ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue("施焊数量\r\nWelded Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 14)); - ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("总数\r\nTotal Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 16)); - ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 19)); - ws.GetRow(rowIndex + 6).GetCell(17).SetCellValue("Actual exam. Rate"); - - ws.GetRow(rowIndex + 6).GetCell(20).SetCellValue("Examination Report No."); - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 7, rowIndex + 16, style, 0, 20, true); - for (int i = 7; i < 15; i++) - { - ws.GetRow(rowIndex + i).Height = 25 * 20; - } - //这里循环数据 - ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("小计\r\nTotal"); - - #endregion - - #region 尾部 - - ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("备注\r\nRemark"); - ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\r\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); - ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 20)); - - - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false); - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 24, style, 0, 20, true); - - ws.GetRow(rowIndex + 17).GetCell(20).CellStyle = style1; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 4, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 10, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 17, 20)); - - ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 17).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 17).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); - ws.GetRow(rowIndex + 17).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); - ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = ws.GetRow(rowIndex + 17).GetCell(4).CellStyle = ws.GetRow(rowIndex + 17).GetCell(10).CellStyle = ws.GetRow(rowIndex + 17).GetCell(17).CellStyle = style1; - ws.GetRow(rowIndex + 17).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 3)); - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 18).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 4, 9)); - ws.GetRow(rowIndex + 18).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 10, 16)); - ws.GetRow(rowIndex + 18).GetCell(10).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 17, 20)); - ws.GetRow(rowIndex + 18).GetCell(17).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 17, 20)); - ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 17, 20)); - ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("制表:\r\nPrepared:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 3)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 4, 9)); - ws.GetRow(rowIndex + 24).GetCell(4).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 10, 16)); - ws.GetRow(rowIndex + 24).GetCell(10).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 17, 20)); - ws.GetRow(rowIndex + 24).GetCell(17).SetCellValue("日期Date: 年 月 日"); - ws.GetRow(rowIndex + 19).Height = ws.GetRow(rowIndex + 21).Height = ws.GetRow(rowIndex + 22).Height = ws.GetRow(rowIndex + 23).Height = 2 * 20; - - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 20, 20), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 20), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 9, 9), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 16, 16), ws); - - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 - ws.PrintSetup.Landscape = true; - //垂直水平居中 - ws.VerticallyCenter = true; - ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); - - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); - } - + //22-射线检测比例确认表SHT 3503-J412-2007 private void template22(XSSFWorkbook hssfworkbook, XSSFSheet ws) { @@ -5308,138 +5425,217 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage int rowIndex = 0; var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); - #region 头部 + string sql = @"select + a.PTP_ID, + a.TestPackageNo, + a.OperationMedium, + a.PurgingMedium, + a.CleaningMedium, + '' as SubSystemName, + '' as SubSystemNo, + b.PipelineId, + (select PipelineCode from Pipeline_Pipeline where PipelineId=b.PipelineId) as PipelineCode, + (select d.MaterialCode from Pipeline_Pipeline as c inner join Base_Material as d on c.MainMaterialId=d.MaterialId + where PipelineId=b.PipelineId ) as MaterialCode, + e.ProjectName, + e.EnProjectName, + (select UnitName from Base_Unit where UnitId=a.UnitId) as UnitName, + (select UnitCode from Base_Unit where UnitId=a.UnitId) as UnitCode + from PTP_TestPackage as a inner join + PTP_PipelineList as b on a.PTP_ID=b.PTP_ID + left join Base_Project as e on a.ProjectId=e.ProjectId + where a.PTP_ID=@PTP_ID and a.projectId=@projectId + "; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 7, style, 0, 6, true); - //设置头部行高 - ws.GetRow(rowIndex).Height = 20 * 20 * 5; - ws.GetRow(rowIndex + 1).Height = 20 * 20; - ws.GetRow(rowIndex + 2).Height = 20 * 20; - ws.GetRow(rowIndex + 3).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 4).Height = 20 * 20; - ws.GetRow(rowIndex + 5).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 6).Height = 20 * 20; - ws.GetRow(rowIndex + 7).Height = 20 * 20 * 2; - //设置列宽 - ws.SetColumnWidth(0, 24 * 256); - ws.SetColumnWidth(1, 9 * 256); - ws.SetColumnWidth(2, 14 * 256); - ws.SetColumnWidth(3, 19 * 256); - ws.SetColumnWidth(4, 14 * 256); - ws.SetColumnWidth(5, 5 * 256); - ws.SetColumnWidth(6, 9 * 256); - - //合并单元格和填充单元格值 - for (int i = 0; i < 3; i++) + SqlParameter[] parmas = { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 4, 6)); - } + new SqlParameter("@projectId",this.CurrUser.LoginProjectId), + new SqlParameter("@PTP_ID",tvControlItem.SelectedNodeID) + }; + DataTable dt = SQLHelper.GetDataTableRunText(sql, parmas); + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 16 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J408"); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - style1.WrapText = true; - ws.GetRow(rowIndex).GetCell(2).CellStyle = style1; - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道吹扫/清洗检验记录(I)\nPipline Flushing and Blowing Inspection Record(I)"); - - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false, "Arial Unicode MS"); - style2.WrapText = true; - ws.GetRow(rowIndex).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex).GetCell(4).SetCellValue(" 项目名称:巴斯夫(广东)一体化项目\n Project Name:BASF (Guangdong) Integrated Project\n\n\n\n 单位名称:Citral\n Unit Name:Citral"); - - ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("子系统名称 Subsystem Name"); - ws.GetRow(rowIndex + 1).GetCell(2).SetCellValue("子系统编号 Subsystem No."); - ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("试压包号 Test Package No."); - - ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("Fire Water"); - ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("UG-FW"); - ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("UG-130-FW-HT-001"); - - for (int i = 3; i < 8; i++) + string projectName = dt.Rows.Count > 0 ? dt.Rows[0]["ProjectName"].ToString() : ""; + string enprojectName = dt.Rows.Count > 0 ? dt.Rows[0]["EnProjectName"].ToString() : ""; + string unitName = dt.Rows.Count > 0 ? dt.Rows[0]["UnitName"].ToString() : ""; + string unitCode = dt.Rows.Count > 0 ? dt.Rows[0]["unitCode"].ToString() : ""; + string subSystemName= dt.Rows.Count > 0 ? dt.Rows[0]["SubSystemName"].ToString() : ""; + string subSystemNo= dt.Rows.Count > 0 ? dt.Rows[0]["SubSystemNo"].ToString() : ""; + string testPackNo= dt.Rows.Count > 0 ? dt.Rows[0]["TestPackageNo"].ToString() : ""; + for (int i =1; i <= pageNum; i++) { - if (i == 3 || i == 5 || i == 7) - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 9, style, 0, 6, true); + //设置头部行高 + ws.GetRow(rowIndex).Height = 13 * 20; + ws.GetRow(rowIndex + 1).Height = 22 * 20; + ws.GetRow(rowIndex + 2).Height = 56 * 20; + ws.GetRow(rowIndex + 3).Height = 12 * 20; + ws.GetRow(rowIndex + 4).Height = 12 * 20; + ws.GetRow(rowIndex + 5).Height = 27 * 20; + ws.GetRow(rowIndex + 6).Height = 26 * 20; + ws.GetRow(rowIndex + 7).Height = 36 * 20; + ws.GetRow(rowIndex + 8).Height = 26 * 20; + ws.GetRow(rowIndex + 9).Height = 26 * 20; + //设置列宽 + ws.SetColumnWidth(0, 19 * 256); + ws.SetColumnWidth(1, 9 * 256); + ws.SetColumnWidth(2, 16 * 256); + ws.SetColumnWidth(3, 15 * 256); + ws.SetColumnWidth(4, 11 * 256); + ws.SetColumnWidth(5, 5 * 256); + ws.SetColumnWidth(6, 9 * 256); + + //合并单元格和填充单元格值 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 4, 6)); + + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J408"); + + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, true, "Arial"); + style1.WrapText = true; + ws.GetRow(rowIndex).GetCell(2).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道吹扫/清洗检验记录(I)\nPipline Flushing and Blowing Inspection Record(I)"); + + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false, "Arial"); + style2.WrapText = true; + ws.GetRow(rowIndex).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex).GetCell(4).SetCellValue($"项目名称:{projectName}\nProject Name:{enprojectName}\n单位名称:{unitName}\n Unit Name:{unitCode}"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 6)); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 4, 6)); + + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("子系统名称 Subsystem Name"); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("子系统编号 Subsystem No."); + ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("试压包号 Test Package No."); + + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue(subSystemName); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(subSystemNo); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue(testPackNo); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 5)); + + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检查项目及要求\nInspection items and requirements"); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("检查结果\nResult"); + + + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 9, true, false, "Arial"); + ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("管线压力试验检查合格。Pipeline pressure test is acceptable."); + + ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("与吹扫及清洗无关的安全附件和仪表元件已经拆除或按要求隔离。Safety attachments and instruments not involved in purging and cleaning have been dismantled or isolated as per requirement."); + + ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("管线系统内阀门已按要求开启。All piping system valves have been opened."); + + ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("不锈钢管线系统清洗用水应符合规范要求。Test use water of stainless steel pipeline shall be in compliance with specification."); + + #endregion + + #region 表格部分 + + var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 10, rowIndex + 26, style4, 0, 6, true); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 5, 6)); + ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue("管道编号\nPipeline No."); + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("管线材质\nMaterial"); + ws.GetRow(rowIndex + 10).GetCell(3).SetCellValue("操作介质\nOperation Medium"); + ws.GetRow(rowIndex + 10).GetCell(4).SetCellValue("吹扫介质\nBlowing Meadium"); + ws.GetRow(rowIndex + 10).GetCell(5).SetCellValue("清洗介质\nFlushing Medium"); + var dataTit = rowIndex + 11; + + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 15; + } else - ws.GetRow(rowIndex + i).Height = 20 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 5)); + { + dStart = i == 2 ? 15 : ((i - 2) * 15) + 15; + dEnd = ((i - 1) * 15) + 15; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int k = rowIndex + 11; k <= rowIndex + 26; k++) + { + ws.GetRow(k).Height = 20 * 20; + ws.AddMergedRegion(new CellRangeAddress(k, k, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 5, 6)); + } + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(2).SetCellValue(dr["MaterialCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["OperationMedium"].ToString()); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(dr["PurgingMedium"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["CleaningMedium"].ToString()); + j++; + } + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 27, rowIndex + 34, style, 0, 6, true); + + //合并单元格合和填充值 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 0, 6)); + ws.GetRow(rowIndex + 27).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 27).GetCell(0).SetCellValue("检验方法及结果:\nInspection method and conclusion:"); + ws.GetRow(rowIndex + 27).Height = 32 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 4, 6)); + + ws.GetRow(rowIndex + 29).GetCell(0).SetCellValue("建设/监理单位\nOwner/Construction Supervision Contractor"); + ws.GetRow(rowIndex + 29).GetCell(2).SetCellValue("总承包单位\nGeneral Contractor"); + ws.GetRow(rowIndex + 29).GetCell(4).SetCellValue("施工单位\nConstruction Company"); + ws.GetRow(rowIndex + 28).Height = 13 * 20; + ws.GetRow(rowIndex + 29).Height = 13 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 4, 6)); + + ws.GetRow(rowIndex + 30).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:\n\n"); + ws.GetRow(rowIndex + 30).GetCell(2).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:\n\n"); + ws.GetRow(rowIndex + 30).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(4).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:\n\n"); + + ws.GetRow(rowIndex + 30).Height = 40 * 20; + ws.GetRow(rowIndex + 31).Height = 24 * 20; + ws.GetRow(rowIndex + 32).Height = 16 * 20; + ws.GetRow(rowIndex + 33).Height = 26 * 20; + ws.GetRow(rowIndex + 34).Height = 33 * 20; + #endregion + + rowIndex = rowIndex + 12; } - ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("检查项目及要求\nInspection items and requirements"); - ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("检查结果\nResult"); - ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管线压力试验检查合格。Pipeline pressure test is acceptable."); - - ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("与吹扫及清洗无关的安全附件和仪表元件已经拆除或按要求隔离。Safety attachments and instruments not involved in purging and cleaning have been dismantled or isolated as per requirement."); - - ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("管线系统内阀门已按要求开启。All piping system valves have been opened."); - - ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("不锈钢管线系统清洗用水应符合规范要求。Test use water of stainless steel pipeline shall be in compliance with specification."); - - #endregion - - #region 表格部分 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 24, style, 0, 6, true); - //循环合并单元格和设置行高 - for (int i = 8; i < 25; i++) - { - if (i == 8) - ws.GetRow(rowIndex + i).Height = 30 * 20; - else - ws.GetRow(rowIndex + i).Height = 20 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); - } - ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("管道编号\nPipeline No."); - ws.GetRow(rowIndex + 8).GetCell(2).SetCellValue("管线材质\nMaterial"); - ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue("操作介质\nOperation Medium"); - ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("吹扫介质\nBlowing Meadium"); - ws.GetRow(rowIndex + 8).GetCell(5).SetCellValue("清洗介质\nFlushing Medium"); - - ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("1701-130-9062.058-0000"); - ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("A53-B"); - ws.GetRow(rowIndex + 9).GetCell(3).SetCellValue("Fire Water"); - ws.GetRow(rowIndex + 9).GetCell(4).SetCellValue("Air"); - ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("Water"); - - #endregion - - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 25, rowIndex + 27, style, 0, 6, true); - //设置行高度 - ws.GetRow(rowIndex + 25).Height = 20 * 20 * 3; - ws.GetRow(rowIndex + 26).Height = 20 * 20 * 3; - ws.GetRow(rowIndex + 27).Height = 20 * 20 * 7; - - //合并单元格合和填充值 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 6)); - ws.GetRow(rowIndex + 25).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("检验方法及结果:\nInspection method and conclusion:"); - - for (int i = 26; i < 28; i++) - { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 4, 6)); - } - ws.GetRow(rowIndex + 26).GetCell(0).SetCellValue("建设/监理单位\nOwner/Construction Supervision Contractor"); - ws.GetRow(rowIndex + 26).GetCell(2).SetCellValue("总承包单位\nGeneral Contractor"); - ws.GetRow(rowIndex + 26).GetCell(4).SetCellValue("施工单位\nConstruction Company"); - - ws.GetRow(rowIndex + 27).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 27).GetCell(2).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 27).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(4).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:"); - - #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; @@ -6328,7 +6524,37 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage #region 私有方法 + /// + /// 查询指定条数分页 + /// + /// + 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; + } /// /// 获取某一列的所有值 /// diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs index 9605a2b..850ae4b 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs @@ -1139,55 +1139,58 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage //获取当前页数据 var pageTb = GetPageToTable(tb, dStart, dEnd); - for (int j = 0; j < pageTb.Rows.Count; j++) + int j = 0; + foreach (DataRow dr in pageTb.Rows) { int dataIndex = dataTit + j; //管道编号/单线号 ws.GetRow(dataIndex).GetCell(0).SetCellValue(titleModel.PipelineCode); //焊口编号 - ws.GetRow(dataIndex).GetCell(1).SetCellValue(tb.Rows[i]["WeldJointCode"].ToString()); + ws.GetRow(dataIndex).GetCell(1).SetCellValue(dr["WeldJointCode"].ToString()); //焊接形式 - ws.GetRow(dataIndex).GetCell(3).SetCellValue(tb.Rows[i]["WeldTypeCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["WeldTypeCode"].ToString()); //焊工代号 List welderStr = new List(); - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["BackingWelderCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["BackingWelderCode"].ToString())) { - welderStr.Add(tb.Rows[i]["BackingWelderCode"].ToString()); + welderStr.Add(dr["BackingWelderCode"].ToString()); } - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["CoverWelderCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["CoverWelderCode"].ToString())) { - welderStr.Add(tb.Rows[i]["CoverWelderCode"].ToString()); + welderStr.Add(dr["CoverWelderCode"].ToString()); } if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList(); ws.GetRow(dataIndex).GetCell(4).SetCellValue(string.Join("/", welderStr)); //规格mm - ws.GetRow(dataIndex).GetCell(5).SetCellValue(tb.Rows[i]["Specification"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["Specification"].ToString()); //材质 - ws.GetRow(dataIndex).GetCell(6).SetCellValue(tb.Rows[i]["Material1Code"].ToString()); + ws.GetRow(dataIndex).GetCell(6).SetCellValue(dr["Material1Code"].ToString()); //焊接位置 - ws.GetRow(dataIndex).GetCell(7).SetCellValue(tb.Rows[i]["WeldingLocationCode"].ToString()); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["WeldingLocationCode"].ToString()); //焊接方法 - ws.GetRow(dataIndex).GetCell(8).SetCellValue(tb.Rows[i]["WeldingMethodCode"].ToString()); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(dr["WeldingMethodCode"].ToString()); //焊材牌号 List silkMats = new List(); - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldSilkCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["WeldSilkCode"].ToString())) { - silkMats.Add(tb.Rows[i]["WeldSilkCode"].ToString()); + silkMats.Add(dr["WeldSilkCode"].ToString()); } - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldMatCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["WeldMatCode"].ToString())) { - silkMats.Add(tb.Rows[i]["WeldMatCode"].ToString()); + silkMats.Add(dr["WeldMatCode"].ToString()); } if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList(); ws.GetRow(dataIndex).GetCell(10).SetCellValue(string.Join("/", silkMats)); //实际预热温度 - ws.GetRow(dataIndex).GetCell(12).SetCellValue(tb.Rows[i]["PrepareTemp"].ToString()); + ws.GetRow(dataIndex).GetCell(12).SetCellValue(dr["PrepareTemp"].ToString()); //焊接日期 - ws.GetRow(dataIndex).GetCell(13).SetCellValue(tb.Rows[i]["WeldingDate"].ToString()); + ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["WeldingDate"].ToString()); //无损检查报告 - ws.GetRow(dataIndex).GetCell(14).SetCellValue(tb.Rows[i]["NDEReportNo"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["NDEReportNo"].ToString()); + j++; } + rowIndex += tIndex; #endregion diff --git a/HJGL/Model/Model.csproj b/HJGL/Model/Model.csproj index 78bcf82..57e00db 100644 --- a/HJGL/Model/Model.csproj +++ b/HJGL/Model/Model.csproj @@ -79,6 +79,9 @@ + + +