From 988b5983e4d05a1d264b551e7c1b136a83a873ee Mon Sep 17 00:00:00 2001 From: liyh Date: Mon, 1 Jul 2024 14:40:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=A0=BC=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrustManage/NDTTrustPrint.aspx.cs | 655 +++++++++++++++++- .../TrustManage/TrustBatchManage.aspx.cs | 637 ++++++++++++++++- 2 files changed, 1290 insertions(+), 2 deletions(-) diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/NDTTrustPrint.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/NDTTrustPrint.aspx.cs index aeaca18..c9c48e7 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/NDTTrustPrint.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/NDTTrustPrint.aspx.cs @@ -177,7 +177,660 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage XSSFSheet ws = new XSSFSheet(); //for (int gi = 0; gi < Grid1.SelectedRowIDArray.Length; gi++) - foreach(string trustId in Grid1.SelectedRowIDArray) + foreach (string trustId in Grid1.SelectedRowIDArray) + { + var trust = BLL.Batch_BatchTrustService.GetBatchTrustViewById(trustId); + string trustBatchId = trust.TrustBatchId.ToString(); + string detectionTypeCode = trust.DetectionTypeCode.ToString(); + //头部 + var listStr = new List(); + listStr.Add(new SqlParameter("@TrustBatchId", trustBatchId)); + SqlParameter[] parameter = listStr.ToArray(); + var tbTitle = SQLHelper.GetDataTableRunProc("sp_TrustReport", parameter); + //列表 + var listTitleStr = new List(); + listTitleStr.Add(new SqlParameter("@TrustBatchId", trustBatchId)); + SqlParameter[] titleparameter = listTitleStr.ToArray(); + var tb = SQLHelper.GetDataTableRunProc("TrustItemReport", titleparameter); + + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleButton = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleTop = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleNone = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + + if (detectionTypeCode.Trim() == "PMI") + { + if (hssfworkbook.GetSheet("材料及配件检测委托单") != null) + { + ws = (XSSFSheet)hssfworkbook.GetSheet("材料及配件检测委托单"); + } + else + { + rowIndex = 0; + ws = (XSSFSheet)hssfworkbook.CreateSheet("材料及配件检测委托单"); + + #region 列宽 + + ws.SetColumnWidth(0, 5 * 256); + ws.SetColumnWidth(1, 7 * 256); + ws.SetColumnWidth(2, 9 * 256); + ws.SetColumnWidth(3, 5 * 256); + ws.SetColumnWidth(4, 5 * 256); + ws.SetColumnWidth(5, 5 * 256); + ws.SetColumnWidth(6, 5 * 256); + ws.SetColumnWidth(7, 6 * 256); + ws.SetColumnWidth(8, 6 * 256); + ws.SetColumnWidth(9, 9 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 5 * 256); + ws.SetColumnWidth(13, 9 * 256); + ws.SetColumnWidth(14, 4 * 256); + ws.SetColumnWidth(15, 4 * 256); + ws.SetColumnWidth(16, 4 * 256); + ws.SetColumnWidth(17, 5 * 256); + ws.SetColumnWidth(18, 10 * 256); + ws.SetColumnWidth(19, 8 * 256); + ws.SetColumnWidth(20, 8 * 256); + + #endregion + } + + if (tb.Rows.Count > 0 && tbTitle.Rows.Count > 0) + { + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 17 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + + //循环页 + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 20, true); + + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue(tbTitle.Rows[0]["PipelineCode"].ToString()); + region = new CellRangeAddress(rowIndex, rowIndex + 3, 5, 15); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(5).SetCellValue("材料及配件检测委托单"); + ws.GetRow(rowIndex).GetCell(5).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true); + region = new CellRangeAddress(rowIndex, rowIndex, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(16).SetCellValue(tbTitle.Rows[0]["ProjectName"].ToString()); + ws.GetRow(rowIndex).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(16).SetCellValue(""); + ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9, true, false); + + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue(tbTitle.Rows[0]["InstallationName"].ToString()); + ws.GetRow(rowIndex + 2).GetCell(16).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, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(16).SetCellValue(""); + ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行4 + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("检测方法"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(tbTitle.Rows[0]["DetectionTypeCode"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 4, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("检测标准"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 9); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("GB 50184-2011"); + //ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue(tbTitle.Rows[0]["ExecStandard"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 10, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("检测比列"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(tbTitle.Rows[0]["DetectionRateCode"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("委托编号"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 18, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue(tbTitle.Rows[0]["TrustBatchCode"].ToString()); + + //行5 + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检件编号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("检件名称"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("质量证明文件编号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("炉/批号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("检件规格"); + ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检件材质"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 14, 16); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(14).SetCellValue("热处理状态"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 18); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("制造/验收标准"); + ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue("总数量(道)"); + ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("抽检数量"); + + #endregion + + #region 表格 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 20, style, 0, 20); + var dataTit = rowIndex + 6; + var tIndex = 5 + 15; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 15; + } + else + { + dStart = i == 2 ? 15 : ((i - 2) * 15) + 15; + dEnd = ((i - 1) * 15) + 15; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 2); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 3, 5); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 6, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 10); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 11, 12); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 14, 16); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 17, 18); + ws.AddMergedRegion(region); + } + + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + for (int j = 0; j < pageTb.Rows.Count; j++) + { + int dataIndex = dataTit + j; + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["Number"].ToString()); + //检件编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(pageTb.Rows[j]["PipelineCode"].ToString() + " " + pageTb.Rows[j]["WeldJointCode"].ToString()); + //检件名称 + ws.GetRow(dataIndex).GetCell(3).SetCellValue("焊缝"); + //质量证明文件编号 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(tbTitle.Rows[0]["QuaCertFile"].ToString()); + //炉/批号 + List lpls = new List(); + if (!string.IsNullOrWhiteSpace(pageTb.Rows[0]["HeartNo1"].ToString())) lpls.Add(pageTb.Rows[0]["HeartNo1"].ToString()); + if (!string.IsNullOrWhiteSpace(pageTb.Rows[0]["HeartNo2"].ToString())) lpls.Add(pageTb.Rows[0]["HeartNo2"].ToString()); + if (lpls.Count > 0) lpls = lpls.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(string.Join("/", lpls)); + //检件规格 + ws.GetRow(dataIndex).GetCell(11).SetCellValue(pageTb.Rows[j]["Specification"].ToString()); + //检件材质 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(pageTb.Rows[j]["MaterialCode"].ToString()); + //热处理状态 + ws.GetRow(dataIndex).GetCell(14).SetCellValue(pageTb.Rows[j]["IsHotProessName"].ToString()); + //制造/验收标准 + ws.GetRow(dataIndex).GetCell(17).SetCellValue(tbTitle.Rows[0]["AcceptStandard"].ToString()); + //总数量(道) + ws.GetRow(dataIndex).GetCell(19).SetCellValue(""); + //抽检数量 + ws.GetRow(dataIndex).GetCell(20).SetCellValue(""); + } + + rowIndex += tIndex; + + #endregion + + #region 尾部 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 8, style, 0, 20); + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 8; hb++) + { + for (int c = 0; c <= 20; c++) + { + if (hb >= rowIndex + 2 && hb < rowIndex + 8) + { + 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 + 8) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 8); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 9, 11); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 12, 17); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 18, 20); + ws.AddMergedRegion(region); + } + + //尾部行1 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检测单位"); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("监理单位"); + ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("管理公司"); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("建设单位"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("检测单位"); + //尾部行2 + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("质量检测员:"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师:"); + ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("专业/质量工程师:"); + ws.GetRow(rowIndex + 2).GetCell(12).SetCellValue("业主代表:"); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("接收人:"); + //尾部行4 + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("专业工程师:"); + //尾部行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(9).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(18).SetCellValue("年 月 日"); + + #endregion + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 9, style, 0, 20, false, true); + rowIndex += 10; + } + } + + } + else + { + if (hssfworkbook.GetSheet("无损检测委托单") != null) + { + ws = (XSSFSheet)hssfworkbook.GetSheet("无损检测委托单"); + } + else + { + rowIndex = 0; + ws = (XSSFSheet)hssfworkbook.CreateSheet("无损检测委托单"); + + #region 列宽 + + ws.SetColumnWidth(0, 9 * 256); + ws.SetColumnWidth(1, 6 * 256); + ws.SetColumnWidth(2, 6 * 256); + ws.SetColumnWidth(3, 6 * 256); + ws.SetColumnWidth(4, 6 * 256); + ws.SetColumnWidth(5, 9 * 256); + ws.SetColumnWidth(6, 9 * 256); + ws.SetColumnWidth(7, 5 * 256); + ws.SetColumnWidth(8, 5 * 256); + ws.SetColumnWidth(9, 5 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 11 * 256); + ws.SetColumnWidth(12, 13 * 256); + + #endregion + } + + if (tb.Rows.Count > 0 && tbTitle.Rows.Count > 0) + { + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 15 ? 1 + : Math.Ceiling((float)(tbNum - 14) / 14) + 1; + + //循环页 + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 12, style, 0, 12, 1); + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue(tbTitle.Rows[0]["PipelineCode"].ToString()); + ws.GetRow(rowIndex).GetCell(0).CellStyle = style; + ws.GetRow(rowIndex).GetCell(1).CellStyle = style; + ws.GetRow(rowIndex).GetCell(2).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 9); + ws.AddMergedRegion(region); + 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, HorizontalAlignment.Center, 16, true, true); + ws.GetRow(rowIndex).GetCell(4).CellStyle = style; + ws.GetRow(rowIndex).GetCell(5).CellStyle = style; + ws.GetRow(rowIndex).GetCell(6).CellStyle = style; + ws.GetRow(rowIndex).GetCell(7).CellStyle = style; + ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + ws.GetRow(rowIndex).GetCell(9).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(10).SetCellValue(tbTitle.Rows[0]["ProjectName"].ToString()); + ws.GetRow(rowIndex).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex).GetCell(11).CellStyle = styleButton; + ws.GetRow(rowIndex).GetCell(12).CellStyle = styleButton; + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("EnProjectName"); + ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = styleNone; + ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = styleNone; + + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue(tbTitle.Rows[0]["WorkAreaName"].ToString()); + ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = styleNone; + ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = styleNone; + + //行3 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("EnWorkAreaName"); + ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = styleTop; + ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = styleTop; + + //行4 + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("检查单位"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(tbTitle.Rows[0]["NDEUnit"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("委托单编号"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue(tbTitle.Rows[0]["TrustBatchCode"].ToString()); + + //行5, + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("探伤地点"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(4).SetCellValue("检测时机"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue(tbTitle.Rows[0]["DetectionTiming"].ToString()); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("检测标准"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue(tbTitle.Rows[0]["TestStandard"].ToString()); + + //行6 + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("委托单位"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue(tbTitle.Rows[0]["TrustUnit"].ToString()); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(4).SetCellValue("焊接方法"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue(tbTitle.Rows[0]["WeldingMethodCode"].ToString()); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(8).SetCellValue("合格级别"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue(tbTitle.Rows[0]["QueClass"].ToString()); + + //行7 + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测方法"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue(detectionTypeCode); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("坡口形式"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue(tbTitle.Rows[0]["GrooveTypeCode"].ToString()); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(8).SetCellValue("检测比例"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue(tbTitle.Rows[0]["DetectionRateCode"].ToString()); + + //11-7=4 + + //行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("管道编号/单线号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("焊口号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("焊工号"); + + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue("检件规格"); + ws.GetRow(rowIndex + 8).GetCell(8).SetCellValue("检件材质"); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("备注"); + + + #endregion + + #region 表格 + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 24, style, 0, 12, 2); + var dataTit = rowIndex + 9; + var tIndex = 8 + 14; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 14; + } + else + { + dStart = i == 2 ? 14 : ((i - 2) * 14) + 14; + dEnd = ((i - 1) * 14) + 14; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 5); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 6, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 10); + ws.AddMergedRegion(region); + } + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + for (int j = 0; j < pageTb.Rows.Count; j++) + { + int dataIndex = dataTit + j; + + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["Number"].ToString()); + //检件编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(pageTb.Rows[j]["PipelineCode"].ToString()); + + //焊口号 + ws.GetRow(dataIndex).GetCell(4).SetCellValue(pageTb.Rows[j]["WeldJointCode"].ToString()); + //焊工代号 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WelderCode"].ToString()); + //检件材质 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(pageTb.Rows[j]["Specification"].ToString()); + //检件规格(mm) + ws.GetRow(dataIndex).GetCell(11).SetCellValue(pageTb.Rows[j]["MaterialCode"].ToString()); + //备注 + ws.GetRow(dataIndex).GetCell(12).SetCellValue(pageTb.Rows[j]["Remark"].ToString()); + } + if (dataTit + pageTb.Rows.Count < rowIndex+26) + { + ws.GetRow(dataTit + pageTb.Rows.Count).GetCell(1).SetCellValue("以下空白"); + } + + rowIndex += tIndex; + + #endregion + + #region 尾部 + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 8, style, 0, 12, 3); + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 9; hb++) + { + for (int c = 0; c <= 12; c++) + { + if (hb >= rowIndex + 1 && hb <= rowIndex + 5) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true, false); + } + if (hb == rowIndex + 6 || hb == rowIndex + 7) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10.5, true, false); + } + if (hb == rowIndex + 8) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10.5, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 4); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 5, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 12); + ws.AddMergedRegion(region); + } + //尾部行1 + //尾部行2 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("管理公司/监理单位:"); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("检测单位:"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("总承包单位:"); + + //尾部行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(5).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(10).SetCellValue(" 年 月 日"); + + + #endregion + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 9, style, 0, 12, 3, true); + rowIndex += 10; + + //分页打印是操作 + ws.SetRowBreak(rowIndex - 1); + } + } + } + + if ((int)(90 * (num) / totalNum) > percent) + { + percent = (int)(100 * (num) / totalNum); + + } + num++; + } + + ws.SetMargin(MarginType.LeftMargin, 0.3); + ws.SetMargin(MarginType.RightMargin, 0.2); + ws.SetMargin(MarginType.BottomMargin, 0.4); + + ws.PrintSetup.Landscape = false; + ws.PrintSetup.PaperSize = 9; + ws.ForceFormulaRecalculation = true; + + + using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + //hssfworkbook.Close(); + //filess.Flush(); + //filess.Close(); + } + + percent = 100; + url = ReportFileName.Replace(Server.MapPath("~/"), ""); + + //FileInfo filet = new FileInfo(ReportFileName); + //Response.Clear(); + //Response.Charset = "GB2312"; + //Response.ContentEncoding = System.Text.Encoding.UTF8; + //// 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + //Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("无损检测委托单.xlsx")); + //// 添加头信息,指定文件大小,让浏览器能够显示下载进度 + //Response.AddHeader("Content-Length", filet.Length.ToString()); + //// 指定返回的是一个不能被客户端读取的流,必须被下载 + //Response.ContentType = "application/ms-excel"; + //// 把文件流发送到客户端 + //Response.WriteFile(filet.FullName); + //// 停止页面的执行 + //Response.End(); + + } + + private void Print_Old() + { + if (Grid1.SelectedRowIndexArray.Length <= 0) + { + Alert.ShowInTop("最少选中一行!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + "无损检测委托单" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"; + //string ReportFileName = filePath + "out1.xlsx"; + + int totalNum = Grid1.SelectedRowIDArray.Length; + int num = 1; + int rowIndex = 0; + XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + + XSSFSheet ws = new XSSFSheet(); + //for (int gi = 0; gi < Grid1.SelectedRowIDArray.Length; gi++) + foreach (string trustId in Grid1.SelectedRowIDArray) { var trust = BLL.Batch_BatchTrustService.GetBatchTrustViewById(trustId); string trustBatchId = trust.TrustBatchId.ToString(); diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx.cs index 29fff24..d606183 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx.cs @@ -707,7 +707,7 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage } } - protected void btnExport_Click(object sender, EventArgs e) + protected void btnExport_Click_Old(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_BatchTrustMenuId, Const.BtnOut)) { @@ -1379,6 +1379,641 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage } } + protected void btnExport_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_BatchTrustMenuId, Const.BtnOut)) + { + //PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrustBatchOut.aspx", "导出 - "))); + if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + Alert.ShowInTop("请选择委托单!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + "out1.xlsx"; + int rowIndex = 0; + XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + XSSFSheet ws = new XSSFSheet(); + string trustBatchId = this.tvControlItem.SelectedNodeID; + //头部 + var listStr = new List(); + listStr.Add(new SqlParameter("@TrustBatchId", trustBatchId)); + SqlParameter[] parameter = listStr.ToArray(); + var tbTitle = SQLHelper.GetDataTableRunProc("sp_TrustReport", parameter); + string detectionTypeCode = tbTitle.Rows[0]["DetectionTypeCode"].ToString(); + string trustBatchCode = tbTitle.Rows[0]["TrustBatchCode"].ToString(); + //列表 + var listTitleStr = new List(); + listTitleStr.Add(new SqlParameter("@TrustBatchId", trustBatchId)); + SqlParameter[] titleparameter = listTitleStr.ToArray(); + var tb = SQLHelper.GetDataTableRunProc("TrustItemReport", titleparameter); + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + + var styleButton = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleTop = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleNone = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + if (detectionTypeCode.Trim() == "PMI") + { + if (hssfworkbook.GetSheet("材料及配件检测委托单") != null) + { + ws = (XSSFSheet)hssfworkbook.GetSheet("材料及配件检测委托单"); + } + else + { + rowIndex = 0; + ws = (XSSFSheet)hssfworkbook.CreateSheet("材料及配件检测委托单"); + + #region 列宽 + + ws.SetColumnWidth(0, 5 * 256); + ws.SetColumnWidth(1, 7 * 256); + ws.SetColumnWidth(2, 5 * 256); + ws.SetColumnWidth(3, 5 * 256); + ws.SetColumnWidth(4, 5 * 256); + ws.SetColumnWidth(5, 5 * 256); + ws.SetColumnWidth(6, 5 * 256); + ws.SetColumnWidth(7, 6 * 256); + ws.SetColumnWidth(8, 6 * 256); + ws.SetColumnWidth(9, 9 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 5 * 256); + ws.SetColumnWidth(13, 9 * 256); + ws.SetColumnWidth(14, 4 * 256); + ws.SetColumnWidth(15, 4 * 256); + ws.SetColumnWidth(16, 4 * 256); + ws.SetColumnWidth(17, 5 * 256); + ws.SetColumnWidth(18, 10 * 256); + ws.SetColumnWidth(19, 8 * 256); + ws.SetColumnWidth(20, 8 * 256); + + #endregion + } + + if (tb.Rows.Count > 0 && tbTitle.Rows.Count > 0) + { + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 17 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + + //循环页 + for (int i = 1; i <= pageNum; i++) + { + + #region 头部 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 20, true); + + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue(tbTitle.Rows[0]["PipelineCode"].ToString()); + region = new CellRangeAddress(rowIndex, rowIndex + 3, 5, 15); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(5).SetCellValue("材料及配件检测委托单"); + ws.GetRow(rowIndex).GetCell(5).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true); + region = new CellRangeAddress(rowIndex, rowIndex, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(16).SetCellValue(tbTitle.Rows[0]["ProjectName"].ToString()); + ws.GetRow(rowIndex).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(16).SetCellValue(""); + ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9, true, false); + + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue(tbTitle.Rows[0]["InstallationName"].ToString()); + ws.GetRow(rowIndex + 2).GetCell(16).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, 16, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(16).SetCellValue(""); + ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行4 + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("检测方法"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(tbTitle.Rows[0]["DetectionTypeCode"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 4, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("检测标准"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 9); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("GB 50184-2011"); + //ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue(tbTitle.Rows[0]["ExecStandard"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 10, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("检测比列"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(tbTitle.Rows[0]["DetectionRateCode"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("委托编号"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 18, 20); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue(tbTitle.Rows[0]["TrustBatchCode"].ToString()); + + //行5 + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检件编号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("检件名称"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("质量证明文件编号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("炉/批号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("检件规格"); + ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检件材质"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 14, 16); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(14).SetCellValue("热处理状态"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 18); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("制造/验收标准"); + ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue("总数量(道)"); + ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("抽检数量"); + + #endregion + + #region 表格 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 20, style, 0, 20); + var dataTit = rowIndex + 6; + var tIndex = 5 + 15; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 15; + } + else + { + dStart = i == 2 ? 15 : ((i - 2) * 15) + 15; + dEnd = ((i - 1) * 15) + 15; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 2); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 3, 5); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 6, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 10); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 11, 12); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 14, 16); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 17, 18); + ws.AddMergedRegion(region); + } + + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + for (int j = 0; j < pageTb.Rows.Count; j++) + { + int dataIndex = dataTit + j; + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["Number"].ToString()); + //检件编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(pageTb.Rows[j]["PipelineCode"].ToString() + " " + pageTb.Rows[j]["WeldJointCode"].ToString()); + //检件名称 + ws.GetRow(dataIndex).GetCell(3).SetCellValue("焊缝"); + //质量证明文件编号 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(tbTitle.Rows[0]["QuaCertFile"].ToString()); + //炉/批号 + List lpls = new List(); + if (!string.IsNullOrWhiteSpace(pageTb.Rows[0]["HeartNo1"].ToString())) lpls.Add(pageTb.Rows[0]["HeartNo1"].ToString()); + if (!string.IsNullOrWhiteSpace(pageTb.Rows[0]["HeartNo2"].ToString())) lpls.Add(pageTb.Rows[0]["HeartNo2"].ToString()); + if (lpls.Count > 0) lpls = lpls.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(string.Join("/", lpls)); + //检件规格 + ws.GetRow(dataIndex).GetCell(11).SetCellValue(pageTb.Rows[j]["Specification"].ToString()); + //检件材质 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(pageTb.Rows[j]["MaterialCode"].ToString()); + //热处理状态 + ws.GetRow(dataIndex).GetCell(14).SetCellValue(pageTb.Rows[j]["IsHotProessName"].ToString()); + //制造/验收标准 + ws.GetRow(dataIndex).GetCell(17).SetCellValue(tbTitle.Rows[0]["AcceptStandard"].ToString()); + //总数量(道) + ws.GetRow(dataIndex).GetCell(19).SetCellValue(""); + //抽检数量 + ws.GetRow(dataIndex).GetCell(20).SetCellValue(""); + } + + rowIndex += tIndex; + + #endregion + + #region 尾部 + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 8, style, 0, 20); + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 8; hb++) + { + for (int c = 0; c <= 20; c++) + { + if (hb >= rowIndex + 2 && hb < rowIndex + 8) + { + 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 + 8) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 8); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 9, 11); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 12, 17); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 18, 20); + ws.AddMergedRegion(region); + } + + //尾部行1 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检测单位"); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("监理单位"); + ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("管理公司"); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("建设单位"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("检测单位"); + //尾部行2 + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("质量检测员:"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师:"); + ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("专业/质量工程师:"); + ws.GetRow(rowIndex + 2).GetCell(12).SetCellValue("业主代表:"); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("接收人:"); + //尾部行4 + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("专业工程师:"); + //尾部行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(9).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(18).SetCellValue("年 月 日"); + + #endregion + + ws = ClExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 9, style, 0, 20, false, true); + rowIndex += 10; + } + } + + } + else + { + if (hssfworkbook.GetSheet("无损检测委托单") != null) + { + ws = (XSSFSheet)hssfworkbook.GetSheet("无损检测委托单"); + } + else + { + rowIndex = 0; + ws = (XSSFSheet)hssfworkbook.CreateSheet("无损检测委托单"); + + #region 列宽 + + ws.SetColumnWidth(0, 9 * 256); + ws.SetColumnWidth(1, 6 * 256); + ws.SetColumnWidth(2, 6 * 256); + ws.SetColumnWidth(3, 6 * 256); + ws.SetColumnWidth(4, 6 * 256); + ws.SetColumnWidth(5, 9 * 256); + ws.SetColumnWidth(6, 9 * 256); + ws.SetColumnWidth(7, 5 * 256); + ws.SetColumnWidth(8, 5 * 256); + ws.SetColumnWidth(9, 5 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 11 * 256); + ws.SetColumnWidth(12, 13 * 256); + + #endregion + } + + if (tb.Rows.Count > 0 && tbTitle.Rows.Count > 0) + { + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 15 ? 1 + : Math.Ceiling((float)(tbNum - 14) / 14) + 1; + + //循环页 + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 12, style, 0, 12, 1); + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("NDE-001"); + ws.GetRow(rowIndex).GetCell(0).CellStyle = style; + ws.GetRow(rowIndex).GetCell(1).CellStyle = style; + ws.GetRow(rowIndex).GetCell(2).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 9); + ws.AddMergedRegion(region); + 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, HorizontalAlignment.Center, 16, true, true); + ws.GetRow(rowIndex).GetCell(4).CellStyle = style; + ws.GetRow(rowIndex).GetCell(5).CellStyle = style; + ws.GetRow(rowIndex).GetCell(6).CellStyle = style; + ws.GetRow(rowIndex).GetCell(7).CellStyle = style; + ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + ws.GetRow(rowIndex).GetCell(9).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(10).SetCellValue(tbTitle.Rows[0]["ProjectName"].ToString()); + ws.GetRow(rowIndex).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex).GetCell(11).CellStyle = styleButton; + ws.GetRow(rowIndex).GetCell(12).CellStyle = styleButton; + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue(tbTitle.Rows[0]["EnProjectName"].ToString()); + ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = styleNone; + ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = styleNone; + + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue(tbTitle.Rows[0]["WorkAreaName"].ToString()); + ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = styleNone; + ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = styleNone; + + //行3 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 10, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue(tbTitle.Rows[0]["EnWorkAreaName"].ToString()); + ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = styleTop; + ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = styleTop; + + //行4 + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("检查单位"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(tbTitle.Rows[0]["NDEUnit"].ToString()); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("委托单编号"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue(tbTitle.Rows[0]["TrustBatchCode"].ToString()); + + //行5, + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("探伤地点"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(4).SetCellValue("检测时机"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue(tbTitle.Rows[0]["DetectionTiming"].ToString()); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("检测标准"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue(tbTitle.Rows[0]["TestStandard"].ToString()); + + //行6 + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("委托单位"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue(tbTitle.Rows[0]["TrustUnit"].ToString()); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(4).SetCellValue("焊接方法"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue(tbTitle.Rows[0]["WeldingMethodCode"].ToString()); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(8).SetCellValue("合格级别"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue(tbTitle.Rows[0]["QueClass"].ToString()); + + //行7 + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测方法"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue(detectionTypeCode); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("坡口形式"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue(tbTitle.Rows[0]["GrooveTypeCode"].ToString()); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(8).SetCellValue("检测比例"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue(tbTitle.Rows[0]["DetectionRateCode"].ToString()); + + //11-7=4 + + //行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("管道编号/单线号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 4, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("焊口号"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 6, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("焊工号"); + + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 8, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue("检件规格"); + ws.GetRow(rowIndex + 8).GetCell(8).SetCellValue("检件材质"); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("备注"); + + #endregion + + #region 表格 + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 24, style, 0, 12, 2); + var dataTit = rowIndex + 9; + var tIndex = 8 + 14; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 14; + } + else + { + dStart = i == 2 ? 14 : ((i - 2) * 14) + 14; + dEnd = ((i - 1) * 14) + 14; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 5); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 6, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 10); + ws.AddMergedRegion(region); + } + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + for (int j = 0; j < pageTb.Rows.Count; j++) + { + int dataIndex = dataTit + j; + + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["Number"].ToString()); + //检件编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(pageTb.Rows[j]["PipelineCode"].ToString()); + + //焊口号 + ws.GetRow(dataIndex).GetCell(4).SetCellValue(pageTb.Rows[j]["WeldJointCode"].ToString()); + //焊工代号 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WelderCode"].ToString()); + //检件材质 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(pageTb.Rows[j]["Specification"].ToString()); + //检件规格(mm) + ws.GetRow(dataIndex).GetCell(11).SetCellValue(pageTb.Rows[j]["MaterialCode"].ToString()); + //备注 + ws.GetRow(dataIndex).GetCell(12).SetCellValue(pageTb.Rows[j]["Remark"].ToString()); + } + if (dataTit + pageTb.Rows.Count < 26) + { + ws.GetRow(dataTit + pageTb.Rows.Count).GetCell(1).SetCellValue("以下空白"); + } + + rowIndex += tIndex; + + #endregion + + #region 尾部 + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 8, style, 0, 12, 3); + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 9; hb++) + { + for (int c = 0; c <= 12; c++) + { + if (hb >= rowIndex + 1 && hb <= rowIndex + 5) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true, false); + } + if (hb == rowIndex + 6 || hb == rowIndex + 7 ) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10.5, true, false); + } + if (hb == rowIndex + 8) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10.5, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 4); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 5, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 12); + ws.AddMergedRegion(region); + } + //尾部行1 + //尾部行2 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("管理公司/监理单位:"); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("检测单位:"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("总承包单位:"); + + //尾部行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(5).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(10).SetCellValue(" 年 月 日"); + + + #endregion + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 9, rowIndex + 9, style, 0, 12, 3, true); + rowIndex += 10; + } + } + } + + ws.SetMargin(MarginType.LeftMargin, 0.3); + ws.SetMargin(MarginType.RightMargin, 0.2); + ws.SetMargin(MarginType.BottomMargin, 0.4); + if (detectionTypeCode.Trim() == "PMI") + { + ws.PrintSetup.Landscape = true; + } + //ws.PrintSetup.Landscape = true; + ws.PrintSetup.PaperSize = 9; + ws.ForceFormulaRecalculation = true; + + using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + FileInfo filet = new FileInfo(ReportFileName); + Response.Clear(); + Response.Charset = "GB2312"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(trustBatchCode + ".xlsx")); + // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + Response.AddHeader("Content-Length", filet.Length.ToString()); + // 指定返回的是一个不能被客户端读取的流,必须被下载 + Response.ContentType = "application/ms-excel"; + // 把文件流发送到客户端 + Response.WriteFile(filet.FullName); + // 停止页面的执行 + Response.End(); + } + else + { + ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning); + } + } + #region 私有方法 ///