diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo
index 69bfa29..55007dd 100644
Binary files a/HJGL/.vs/HJGL/v17/.suo and b/HJGL/.vs/HJGL/v17/.suo differ
diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs
index 4b98b02..243c16f 100644
--- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs
+++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs
@@ -11,6 +11,7 @@ using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Windows.Forms;
 using BLL;
+using FineUIPro.Web.Common.ProjectSet;
 using Model;
 using Newtonsoft.Json.Linq;
 using NPOI.HSSF.UserModel;
@@ -18,8 +19,8 @@ using NPOI.SS.UserModel;
 using NPOI.SS.Util;
 using NPOI.XSSF.Streaming;
 using NPOI.XSSF.UserModel;
-using static System.Windows.Forms.VisualStyles.VisualStyleElement;
 using BorderStyle = NPOI.SS.UserModel.BorderStyle;
+using HorizontalAlignment = NPOI.SS.UserModel.HorizontalAlignment;
 
 namespace FineUIPro.Web.WeldingProcess.TestPackageManage
 {
@@ -1217,7 +1218,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
                 ws.SetColumnWidth(14, 10 * 256);
                 ws.SetColumnWidth(15, 10 * 256);
                 ws.SetColumnWidth(16, 10 * 256);
-                ws.SetColumnWidth(17, 6 * 256);
+                ws.SetColumnWidth(17, 3 * 256);
                 //设置前3行高度
                 ws.GetRow(rowIndex + 0).Height = 15 * 20;
                 ws.GetRow(rowIndex + 1).Height = 15 * 20;
@@ -1256,10 +1257,10 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
                 #endregion
 
                 #region 插入图片
-                InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 2, 4, 3, img1, 1.2, 1.8);
-                InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 3, 4, 4, img2, 1.9, 1.9);
-                InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 13, 4, 14, img3, 1.5, 1.5);
-                InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 15, 4, 16, img4, 1.5, 1.5);
+                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 试压包头部分
@@ -1351,6 +1352,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
                 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图纸名称");
@@ -1379,15 +1386,16 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
                 var pageTb = GetPageToTable(dt, dStart, dEnd);
                 int nextRow = 0;
                 int lastRow = 0;
-                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(2).SetCellValue($"{j + 1}");
-                    ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[i]["PipelineCode"].ToString());
-                    ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[i]["SingleNumber"].ToString());
-                    ws.GetRow(dataIndex).GetCell(14).SetCellValue(pageTb.Rows[i]["DrawingsNum"].ToString());
-                    ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[i]["PageNum"].ToString());
-                    ws.GetRow(dataIndex).GetCell(16).SetCellValue(pageTb.Rows[i]["Remark"].ToString());
+                    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));
@@ -1402,6 +1410,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage
                     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)
@@ -1529,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);
@@ -2953,340 +3118,345 @@ 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<string> welderStr = new List<string>();
+                        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<string> silkMats = new List<string>();
+                        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.PrintSetup.Scale = 85;
-            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
@@ -5255,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;
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<string> welderStr = new List<string>();
-                        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<string> silkMats = new List<string>();
-                        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