ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/YLRQ/TestDataManagement/TestingReportPrint.aspx.cs

3064 lines
220 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Model;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
namespace FineUIPro.Web.YLRQ.TestDataManagement
{
public partial class TestingReportPrint : PageBase
{
/// <summary>
/// 首次加载
/// </summary>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BridProjectGrid();
//检测类型
this.drpNDT.DataTextField = "Ndt_NdtCode";
this.drpNDT.DataValueField = "Ndt_Id";
this.drpNDT.DataSource = Funs.DB.PV_TestMethod;
this.drpNDT.DataBind();
Funs.FineUIPleaseSelect(this.drpNDT);
//是否打印
this.drpIsPrint.DataTextField = "Text";
this.drpIsPrint.DataValueField = "Value";
this.drpIsPrint.DataSource = BLL.DropListService.IsTrueOrFalseDrpList();
this.drpIsPrint.DataBind();
Funs.FineUIPleaseSelect(this.drpIsPrint);
this.InitTreeMenu();//加载树
}
}
#region
/// <summary>
/// 绑定项目
/// </summary>
public void BridProjectGrid()
{
GridProject.DataSource = BLL.Base_ProjectService.GetYlrqProjectListByUserId(this.CurrUser.UserId, "2");
GridProject.DataBind();
}
/// <summary>
/// 施工号下拉框
/// </summary>
protected void drpProject_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
this.tvControlItem.SelectedNodeID = drpProject.Value;
this.BindGrid();
}
/// <summary>
/// 加载施工号
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "施工号";
rootNode.ToolTip = "项目";
rootNode.NodeID = "0";
rootNode.Expanded = true;
this.tvControlItem.Nodes.Add(rootNode);
List<Base_Project> projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "2");
if (!string.IsNullOrEmpty(this.drpProject.Value))
{
projects = projects.Where(x => x.ProjectId == this.drpProject.Value).ToList();
}
foreach (var item in projects)
{
TreeNode rootProjectNode = new TreeNode();//定义根节点
rootProjectNode.Text = $"{item.ProjectCode},{item.EquipmentName},{item.ProductNum}";
rootProjectNode.NodeID = item.ProjectId;
rootProjectNode.EnableExpandEvent = true;
rootProjectNode.ToolTip = item.ProjectName;
rootProjectNode.CommandName = "施工号";
rootNode.Nodes.Add(rootProjectNode);
TreeNode tn = new TreeNode();
tn.NodeID = "temp";
tn.Text = "正在加载...";
rootProjectNode.Nodes.Add(tn);
}
}
#endregion
#region
/// <summary>
/// 绑定树节点
/// </summary>
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
{
if (e.Node.Nodes != null)
{
e.Node.Nodes.Clear();
}
var entrusDict = Funs.DB.PV_EntrustRecord.Where(p => p.ProjectId == e.NodeID).ToDictionary(p => p.Id, s => s.EntrustCode);
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", e.NodeID));
SqlParameter[] parameter = listStr.ToArray();
DataTable dt = SQLHelper.GetDataTableRunProc("PV_spTestingReportPrint", parameter);
this.BindNodes(e.Node, entrusDict, dt);
}
/// <summary>
/// 绑定树节点
/// </summary>
/// <param name="node"></param>
private void BindNodes(TreeNode node, Dictionary<string, string> entrusDict, DataTable dt)
{
if (node.CommandName == "施工号")
{
foreach (var item in entrusDict)
{
DataRow[] drArr = dt.Select("EntrustId='" + item.Key + "' and IsPrint=0");//查询
if (this.rblPrint.SelectedValue == "0")
{
if (drArr.Count() > 0)
{
TreeNode newNode = new TreeNode();
newNode.Text = item.Value;
newNode.NodeID = item.Key;
newNode.ToolTip = "委托单号";
newNode.CommandName = "委托单号";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
else if (this.rblPrint.SelectedValue == "1")
{
if (drArr.Count() == 0)
{
TreeNode newNode = new TreeNode();
newNode.Text = "<font color='#009966'>" + item.Value + "</font>";
newNode.NodeID = item.Key;
newNode.ToolTip = "委托单号";
newNode.CommandName = "委托单号";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
else
{
TreeNode newNode = new TreeNode();
if (drArr.Count() == 0)
{
newNode.Text = "<font color='#009966'>" + item.Value + "</font>";
}
else
{
newNode.Text = item.Value;
}
newNode.NodeID = item.Key;
newNode.ToolTip = "委托单号";
newNode.CommandName = "委托单号";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
}
}
#endregion
#region TreeView点击事件
/// <summary>
/// TreeView点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID) && !string.IsNullOrEmpty(this.tvControlItem.SelectedNode.ParentNode.NodeID))
{
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.tvControlItem.SelectedNode.ParentNode.NodeID));
if (this.drpNDT.SelectedValue != BLL.Const._Null)
{
listStr.Add(new SqlParameter("@NDT", this.drpNDT.SelectedText));
}
if (this.drpIsPrint.SelectedValue != BLL.Const._Null)
{
listStr.Add(new SqlParameter("@IsPrint", Convert.ToBoolean(this.drpIsPrint.SelectedValue)));
}
if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID))
{
listStr.Add(new SqlParameter("@PEntrustId", this.tvControlItem.SelectedNodeID));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunProc("PV_spTestingReportPrint", parameter);
this.Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
#endregion
#region Grid行点击事件
/// <summary>
/// Grid行点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
object[] reportIds = Grid1.DataKeys[e.RowIndex];
string weldingId = reportIds[0].ToString();
string jointDesc = reportIds[1].ToString();
string ndtId = reportIds[2].ToString();
string ndtCode = reportIds[3].ToString();
string weldingCode = reportIds[4].ToString();
string entrustId = reportIds[5].ToString();
string STE_ID = reportIds[6].ToString();
string STE_ID2 = reportIds[7].ToString();
string WME_ID = reportIds[8] != null ? reportIds[8].ToString() : string.Empty;
string reportPrintId = weldingId + "|" + jointDesc + "|" + ndtId + "|" + entrustId + "|" + weldingCode;
reportPrintId = HttpUtility.UrlEncode(reportPrintId);
string projectId = reportIds[9].ToString();
var weld = Funs.DB.PV_WeldInformation.FirstOrDefault(p => p.WeldingId == weldingId);
if (e.CommandName == "edit")//编辑
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_TestingReportPrint, Const.BtnEdit))
{
if (ndtCode.Contains("RT"))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("RTReportEdit.aspx?reportPrintId={0}&STE_ID={1}&STE_ID2={2}&WME_ID={3}", reportPrintId, STE_ID, STE_ID2, WME_ID, "编辑 - ")));
}
else if (ndtCode.Contains("PT"))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("PTReportEdit.aspx?reportPrintId={0}&STE_ID={1}&STE_ID2={2}&WME_ID={3}", reportPrintId, STE_ID, STE_ID2, WME_ID, "编辑 - ")));
}
else if (ndtCode.Contains("MT"))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("MTReportEdit.aspx?reportPrintId={0}&STE_ID={1}&STE_ID2={2}&WME_ID={3}", reportPrintId, STE_ID, STE_ID2, WME_ID, "编辑 - ")));
}
else if (ndtCode.Contains("UT") || ndtCode.Contains("TOFD") || ndtCode.Contains("PAUT"))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("UTReportEdit.aspx?reportPrintId={0}&STE_ID={1}&STE_ID2={2}&WME_ID={3}", reportPrintId, STE_ID, STE_ID2, WME_ID, "编辑 - ")));
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
if (e.CommandName == "print")//打印
{
var reportModel = Funs.DB.PV_CH_TestingReportPrint.FirstOrDefault(s => s.WeldingId == weldingId && s.Specifications == jointDesc && s.NdtId == ndtId && s.EntrustId == entrustId && s.STE_ID == STE_ID && s.STE_ID2 == STE_ID2 && s.WME_ID == WME_ID);
if (reportModel != null)
{
ExcelPrint(ndtCode, reportModel);
}
else
{
ShowNotify("请先编辑检测报告!", MessageBoxIcon.Warning);
return;
}
}
if (e.CommandName == "fileName")//文档名
{
var rtReport = Funs.DB.PV_CH_TestingReportPrint.FirstOrDefault(s => s.WeldingId == weldingId && s.Specifications == jointDesc && s.NdtId == ndtId && s.EntrustId == entrustId && s.STE_ID == STE_ID && s.STE_ID2 == STE_ID2 && s.WME_ID == WME_ID);
var ndtType = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == ndtId);
if (rtReport != null)
{
string code = string.Empty;
DateTime date = DateTime.Now.Date;
string year = string.Empty;
string month = string.Empty;
string dateStr = string.Empty;
int rowNum = 28;
if (date.Day <= 20)//报告时间段按上月21日到本月20日止如2018年1月21日到2月20日出具的检测编号编为“1802”
{
if (date.Month < 10)
{
month = "0" + date.Month.ToString();
}
else
{
month = date.Month.ToString();
}
year = date.Year.ToString().Substring(2);
}
else
{
date = date.AddMonths(1);
if (date.Month < 10)
{
month = "0" + date.Month.ToString();
}
else
{
month = date.Month.ToString();
}
year = date.Year.ToString().Substring(2);
}
dateStr = year + month;
string reportCode = string.Empty;
if (!string.IsNullOrEmpty(rtReport.ReportCode) && rtReport.ReportCode.Length > 3)
{
reportCode = rtReport.ReportCode.Substring(3);
}
string unitName = string.Empty;
if (weld != null)
{
Model.Base_Unit unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == weld.UnitId);
if (unit != null)
{
unitName = unit.UnitName;
}
}
string projectCode = BLL.Base_ProjectService.GetProjectCode(projectId);
string projectName = string.Empty;
Model.Base_Project project = BLL.Base_ProjectService.GetProjectByProjectId(projectId);
if (project != null)
{
projectName = project.ProjectName;
}
//委托人
string userName = string.Empty;
var mothods = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.EntrustId == entrustId && p.WeldingId == weldingId && p.NdtId == ndtId);
if (mothods != null)
{
var wtr = Funs.DB.Sys_User.FirstOrDefault(p => p.UserId == mothods.EntrustPeople);
if (wtr != null) userName = wtr.UserName;
}
if (ndtType.Ndt_NdtCode == "RT")
{
code = dateStr + "-RT-" + reportCode + "-" + unitName + "-" + projectCode + "-" + projectName + "(" + weld.WeldingCode + ")-" + userName;
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("FileCode.aspx?code={0}", HttpUtility.UrlEncode(code), "编辑 - ")));
}
else if (ndtType.Ndt_NdtCode == "PT")
{
code = dateStr + "-PT-" + reportCode + "-" + unitName + "-" + projectCode + "-" + projectName + "(" + weld.WeldingCode + ")-" + userName;
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("FileCode.aspx?code={0}", HttpUtility.UrlEncode(code), "编辑 - ")));
}
else if (ndtType.Ndt_NdtCode == "MT")
{
code = dateStr + "-MT-" + reportCode + "-" + unitName + "-" + projectCode + "-" + projectName + "(" + weld.WeldingCode + ")-" + userName;
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("FileCode.aspx?code={0}", HttpUtility.UrlEncode(code), "编辑 - ")));
}
else if (ndtType.Ndt_NdtCode == "UT" || ndtType.Ndt_NdtCode == "TOFD" || ndtType.Ndt_NdtCode == "PAUT")
{
code = dateStr + "-UT-" + reportCode + "-" + unitName + "-" + projectCode + "-" + projectName + "(" + weld.WeldingCode + ")-" + userName;
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("FileCode.aspx?code={0}", HttpUtility.UrlEncode(code), "编辑 - ")));
}
}
else
{
ShowNotify("请先编辑检测报告!", MessageBoxIcon.Warning);
return;
}
}
BindGrid();
}
#endregion
#region
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 分页选择下拉改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#endregion
#region
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Text_TextChanged(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 是否打印
/// </summary>
protected void rblPrint_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#endregion
/// <summary>
/// 打印
/// </summary>
public void ExcelPrint(string ndtCode, PV_CH_TestingReportPrint reportModel)
{
if (ndtCode.Contains("RT"))
{
#region 线
if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID))
{
Alert.ShowInTop("请选择检测报告!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "焊缝射线检测报告.xlsx";
if (Grid1.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("焊缝射线检测报告");
#region
ws.SetColumnWidth(0, (8 * 256));
ws.SetColumnWidth(1, (3 * 256));
ws.SetColumnWidth(2, (4 * 256));
ws.SetColumnWidth(3, (4 * 256));
ws.SetColumnWidth(4, (2 * 256));
ws.SetColumnWidth(5, (3 * 256));
ws.SetColumnWidth(6, (3 * 256));
ws.SetColumnWidth(7, (4 * 256));
ws.SetColumnWidth(8, (2 * 256));
ws.SetColumnWidth(9, (2 * 256));
ws.SetColumnWidth(10, (3 * 256));
ws.SetColumnWidth(11, (3 * 256));
ws.SetColumnWidth(12, (2 * 256));
ws.SetColumnWidth(13, (2 * 256));
ws.SetColumnWidth(14, (2 * 256));
ws.SetColumnWidth(15, (3 * 256));
ws.SetColumnWidth(16, (2 * 256));
ws.SetColumnWidth(17, (2 * 256));
ws.SetColumnWidth(18, (2 * 256));
ws.SetColumnWidth(19, (2 * 256));
ws.SetColumnWidth(20, (2 * 256));
ws.SetColumnWidth(21, (2 * 256));
ws.SetColumnWidth(22, (3 * 256));
ws.SetColumnWidth(23, (3 * 256));
ws.SetColumnWidth(24, (3 * 256));
ws.SetColumnWidth(25, (2 * 256));
ws.SetColumnWidth(26, (3 * 256));
ws.SetColumnWidth(27, (3 * 256));
ws.SetColumnWidth(28, (3 * 256));
ws.SetColumnWidth(29, (3 * 256));
#endregion
//修改数据
reportModel.Printer = this.CurrUser.UserName;
reportModel.PrintTime = DateTime.Now.Date;
Funs.DB.SubmitChanges();
//列头数据
var titleModel = Funs.DB.View_TestingReportPrint.FirstOrDefault(s => s.WeldingId == reportModel.WeldingId && s.Specifications == reportModel.Specifications && s.NdtId == reportModel.NdtId && s.EntrustId == reportModel.EntrustId && s.STE_ID == reportModel.STE_ID && s.STE_ID2 == reportModel.STE_ID2 && s.WME_ID == reportModel.WME_ID);
if (titleModel is null)
{
Alert.ShowInTop("请编辑检测报告!", MessageBoxIcon.Warning);
return;
}
//列表
var listSql = @"SELECT v.* FROM(
SELECT ROW_NUMBER() OVER(ORDER BY report.WeldingCode,report.FilmNum) AS Number,report.*
FROM
(SELECT v1.* FROM(
SELECT QualityRating.QualityRatingId,
JointInfo.JointDesc,JointInfo.WeldingCode,
QualityRating.FilmNum,
(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a)+','+(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.CoverWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,
QualityRating.DefectNature,QualityRating.DefectRation as DefectSize,
QualityRating.DefectResult,QualityRating.Remark,trust.EntrustCode
FROM dbo.PV_BO_QualityRating AS QualityRating
LEFT JOIN DBO.PV_ManagementMethod AS TrustItem ON TrustItem.MethodId = QualityRating.MethodId
LEFT JOIN dbo.PV_EntrustRecord trust ON trust.Id = TrustItem.EntrustId
LEFT JOIN DBO.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId=QualityRating.WeldingId
WHERE QualityRating.WeldingId=@WeldingId
AND JointInfo.JointDesc=@JointDesc
AND JointInfo.TextureMaterial1=@STE_ID
AND (JointInfo.TextureMaterial2=@STE_ID2 or @STE_ID2='')
AND JointInfo.WmeId=@WME_ID
AND trust.NdtId=@NDT
AND trust.Id=@EntrustId
) v1
UNION all
SELECT v2.* from (
SELECT qualityRatingRepair.QualityRatingId AS QualityRatingId,JointInfo.JointDesc,JointInfo.WeldingCode,(qualityRatingRepair.FilmNum+record.RepairMark) AS FilmNum,
(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(record.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a)+','+(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(record.CoverWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,
qualityRatingRepair.DefectNature,
qualityRatingRepair.DefectRation as DefectSize,qualityRatingRepair.DefectResult,
qualityRatingRepair.Remark,trust.EntrustCode
FROM dbo.PV_BO_QualityRating AS qualityRatingRepair
LEFT JOIN dbo.PV_CH_RepairItemRecord record ON record.QualityRatingId = qualityRatingRepair.QualityRatingId
LEFT JOIN DBO.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId=qualityRatingRepair.WeldingId
left join PV_EntrustRecord as trust on trust.Id=record.EntrustId
WHERE qualityRatingRepair.WeldingId=@WeldingId
AND JointInfo.JointDesc=@JointDesc
AND JointInfo.TextureMaterial1=@STE_ID AND (JointInfo.TextureMaterial2=@STE_ID2 or @STE_ID2='')
AND JointInfo.WmeId=@WME_ID
AND record.NdtId=@NDT
AND trust.Id=@EntrustId
) v2)
report) v";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@WeldingId", reportModel.WeldingId));
listStr.Add(new SqlParameter("@JointDesc", reportModel.Specifications));
listStr.Add(new SqlParameter("@STE_ID", reportModel.STE_ID));
listStr.Add(new SqlParameter("@STE_ID2", reportModel.STE_ID2));
listStr.Add(new SqlParameter("@WME_ID", reportModel.WME_ID));
listStr.Add(new SqlParameter("@NDT", reportModel.NdtId));
listStr.Add(new SqlParameter("@EntrustId", reportModel.EntrustId));
var parameter = listStr.ToArray();
var tb = SQLHelper.GetSqlDataReaderToDataTable(listSql, parameter);
var tbNum = tb.Rows.Count;
var pageNum =
tbNum < 22 ? 1
: Math.Ceiling((float)(tbNum - 22) / 30) + 1;
#region
//头部样式大文字居中文字加粗
ICellStyle titleMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式大文字居中文字加粗上左右边框
ICellStyle titleSZYMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式居中无边框
ICellStyle titNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠右无边框
ICellStyle titriNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左无边框
ICellStyle titleNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠左上左右边框
ICellStyle titleSZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式居中上左右边框
ICellStyle titleSZYCerateStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠左下左右边框
ICellStyle titleXZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右下左右边框
ICellStyle titleXZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左左右边框
ICellStyle titleZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右左右边框
ICellStyle titleZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式居中左右边框
ICellStyle titleZYCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式居中
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//页码样式
ICellStyle pageStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
//文字靠左
ICellStyle leftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
#endregion
//循环页
for (int i = 1; i <= pageNum; i++)
{
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex, rowIndex, 0, 29, 25);
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 1, rowIndex + 3, 0, 29);
//行1
var region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 3);
ws.AddMergedRegion(region);
var reportCode = i == 1 ? "SH/T 3503—J349-1" : "SH/T 3503—J349-2";
ws.GetRow(rowIndex).GetCell(0).SetCellValue(reportCode);
ws.GetRow(rowIndex).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(4).SetCellValue("设备及构件");
ws.GetRow(rowIndex).GetCell(4).CellStyle = ws.GetRow(rowIndex).GetCell(5).CellStyle = ws.GetRow(rowIndex).GetCell(6).CellStyle = ws.GetRow(rowIndex).GetCell(7).CellStyle = ws.GetRow(rowIndex).GetCell(8).CellStyle = ws.GetRow(rowIndex).GetCell(9).CellStyle = ws.GetRow(rowIndex).GetCell(10).CellStyle = ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex).GetCell(12).CellStyle = ws.GetRow(rowIndex).GetCell(13).CellStyle = ws.GetRow(rowIndex).GetCell(14).CellStyle = ws.GetRow(rowIndex).GetCell(15).CellStyle = ws.GetRow(rowIndex).GetCell(16).CellStyle = ws.GetRow(rowIndex).GetCell(17).CellStyle = ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex).GetCell(19).CellStyle = titleSZYMaxBoldStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(20).SetCellValue($"工程名称:{titleModel.ProjectName}");
ws.GetRow(rowIndex).GetCell(20).CellStyle = ws.GetRow(rowIndex).GetCell(21).CellStyle = ws.GetRow(rowIndex).GetCell(22).CellStyle = ws.GetRow(rowIndex).GetCell(23).CellStyle = ws.GetRow(rowIndex).GetCell(24).CellStyle = ws.GetRow(rowIndex).GetCell(25).CellStyle = ws.GetRow(rowIndex).GetCell(26).CellStyle = ws.GetRow(rowIndex).GetCell(27).CellStyle = ws.GetRow(rowIndex).GetCell(28).CellStyle = ws.GetRow(rowIndex).GetCell(29).CellStyle = titleSZYLeftStyle;
//行2
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 19);
ws.AddMergedRegion(region);
var reportName = i == 1 ? "焊缝射线检测报告" : "焊缝射线检测报告(续)";
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(reportName);
ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = ws.GetRow(rowIndex + 1).GetCell(15).CellStyle = ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = ws.GetRow(rowIndex + 1).GetCell(17).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(19).CellStyle = titleMaxBoldStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = ws.GetRow(rowIndex + 1).GetCell(21).CellStyle = ws.GetRow(rowIndex + 1).GetCell(22).CellStyle = ws.GetRow(rowIndex + 1).GetCell(23).CellStyle = ws.GetRow(rowIndex + 1).GetCell(24).CellStyle = ws.GetRow(rowIndex + 1).GetCell(25).CellStyle = ws.GetRow(rowIndex + 1).GetCell(26).CellStyle = ws.GetRow(rowIndex + 1).GetCell(27).CellStyle = ws.GetRow(rowIndex + 1).GetCell(28).CellStyle = ws.GetRow(rowIndex + 1).GetCell(29).CellStyle = titleZYLeftStyle;
//行3
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"第 {i} 页共 {pageNum} 页");
ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = ws.GetRow(rowIndex + 2).GetCell(5).CellStyle = ws.GetRow(rowIndex + 2).GetCell(6).CellStyle = ws.GetRow(rowIndex + 2).GetCell(7).CellStyle = ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = ws.GetRow(rowIndex + 2).GetCell(9).CellStyle = ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = ws.GetRow(rowIndex + 2).GetCell(14).CellStyle = ws.GetRow(rowIndex + 2).GetCell(15).CellStyle = ws.GetRow(rowIndex + 2).GetCell(16).CellStyle = ws.GetRow(rowIndex + 2).GetCell(17).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(20).SetCellValue($"单位工程名称:{titleModel.InstallationName}");
ws.GetRow(rowIndex + 2).GetCell(20).CellStyle = ws.GetRow(rowIndex + 2).GetCell(21).CellStyle = ws.GetRow(rowIndex + 2).GetCell(22).CellStyle = ws.GetRow(rowIndex + 2).GetCell(23).CellStyle = ws.GetRow(rowIndex + 2).GetCell(24).CellStyle = ws.GetRow(rowIndex + 2).GetCell(25).CellStyle = ws.GetRow(rowIndex + 2).GetCell(26).CellStyle = ws.GetRow(rowIndex + 2).GetCell(27).CellStyle = ws.GetRow(rowIndex + 2).GetCell(28).CellStyle = ws.GetRow(rowIndex + 2).GetCell(29).CellStyle = titleZYLeftStyle;
//行4
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(4).CellStyle = ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = ws.GetRow(rowIndex + 3).GetCell(6).CellStyle = ws.GetRow(rowIndex + 3).GetCell(7).CellStyle = ws.GetRow(rowIndex + 3).GetCell(8).CellStyle = ws.GetRow(rowIndex + 3).GetCell(9).CellStyle = ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = ws.GetRow(rowIndex + 3).GetCell(13).CellStyle = ws.GetRow(rowIndex + 3).GetCell(14).CellStyle = ws.GetRow(rowIndex + 3).GetCell(15).CellStyle = ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = ws.GetRow(rowIndex + 3).GetCell(17).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(20).CellStyle = ws.GetRow(rowIndex + 3).GetCell(21).CellStyle = ws.GetRow(rowIndex + 3).GetCell(22).CellStyle = ws.GetRow(rowIndex + 3).GetCell(23).CellStyle = ws.GetRow(rowIndex + 3).GetCell(24).CellStyle = ws.GetRow(rowIndex + 3).GetCell(25).CellStyle = ws.GetRow(rowIndex + 3).GetCell(26).CellStyle = ws.GetRow(rowIndex + 3).GetCell(27).CellStyle = ws.GetRow(rowIndex + 3).GetCell(28).CellStyle = ws.GetRow(rowIndex + 3).GetCell(29).CellStyle = titleZYLeftStyle;
//行5
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 4, rowIndex + 4, 0, 29);
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("委托单位");
ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(titleModel.UnitName);
ws.GetRow(rowIndex + 4).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("施工单位");
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 20);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("镇海石化建安工程股份有限公司");
ws.GetRow(rowIndex + 4).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 21, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(21).SetCellValue("报告编号");
ws.GetRow(rowIndex + 4).GetCell(21).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 26, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(26).SetCellValue(titleModel.ReportCode);
ws.GetRow(rowIndex + 4).GetCell(26).CellStyle = titleStyle;
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 12, 0, 29);
//行6
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检件编号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("检件名称");
ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 10, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(10).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测标准");
ws.GetRow(rowIndex + 5).GetCell(13).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 22);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue(titleModel.Ndt_TestStandardCode);
ws.GetRow(rowIndex + 5).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 23, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(23).SetCellValue("合格级别");
ws.GetRow(rowIndex + 5).GetCell(23).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(28).SetCellValue(titleModel.Ndt_Level);
ws.GetRow(rowIndex + 5).GetCell(28).CellStyle = titleStyle;
//行7
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件材质");
ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 1, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue(titleModel.STE_Code);
ws.GetRow(rowIndex + 6).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("焊接方法");
ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 10, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(10).SetCellValue(titleModel.WME_Name);
ws.GetRow(rowIndex + 6).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("技术等级");
ws.GetRow(rowIndex + 6).GetCell(13).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 22);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(17).SetCellValue(titleModel.RT_TechnicalGrade);
ws.GetRow(rowIndex + 6).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 23, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(23).SetCellValue("检测比例");
ws.GetRow(rowIndex + 6).GetCell(23).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(28).SetCellValue(titleModel.Ndt_NdtName);
ws.GetRow(rowIndex + 6).GetCell(28).CellStyle = titleStyle;
//行8
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测时机");
ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 1, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue(titleModel.TestingTime);
ws.GetRow(rowIndex + 7).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 5, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(5).SetCellValue("显影温度");
ws.GetRow(rowIndex + 7).GetCell(5).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 10, 12);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(10).SetCellValue(titleModel.RT_DeveloperTemperature);
ws.GetRow(rowIndex + 7).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 13, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(13).SetCellValue("显影时间");
ws.GetRow(rowIndex + 7).GetCell(13).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 17, 22);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(17).SetCellValue(titleModel.RT_DeveloperTime);
ws.GetRow(rowIndex + 7).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 23, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(23).SetCellValue("底片黑度");
ws.GetRow(rowIndex + 7).GetCell(23).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(28).SetCellValue(titleModel.RT_FilmDensity);
ws.GetRow(rowIndex + 7).GetCell(28).CellStyle = titleStyle;
//行9
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("焊缝规格");
ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 2, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(2).SetCellValue("透照方式");
ws.GetRow(rowIndex + 8).GetCell(2).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 3, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue("线径编号");
ws.GetRow(rowIndex + 8).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 4, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("焦距");
ws.GetRow(rowIndex + 8).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 7, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("有效片长");
ws.GetRow(rowIndex + 8).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(8).SetCellValue("管电压源能量");
ws.GetRow(rowIndex + 8).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 11, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue("管电流源活度");
ws.GetRow(rowIndex + 8).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(14).SetCellValue("曝光");
ws.GetRow(rowIndex + 8).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 16, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(16).SetCellValue("设备型号");
ws.GetRow(rowIndex + 8).GetCell(16).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 22, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(22).SetCellValue("焦点尺寸");
ws.GetRow(rowIndex + 8).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 25, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("增感方式");
ws.GetRow(rowIndex + 8).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(28).SetCellValue("胶片牌号");
ws.GetRow(rowIndex + 8).GetCell(28).CellStyle = titleStyle;
//行10
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("mm×mm");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 4, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(4).SetCellValue("mm");
ws.GetRow(rowIndex + 9).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(14).SetCellValue("时间");
ws.GetRow(rowIndex + 9).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 16, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(16).SetCellValue("射源种类");
ws.GetRow(rowIndex + 9).GetCell(16).CellStyle = titleStyle;
//行11
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue(titleModel.Specifications);
ws.GetRow(rowIndex + 10).GetCell(0).CellStyle = titleStyle;
ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue(titleModel.TransilluminationMode);
ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = titleStyle;
ws.GetRow(rowIndex + 10).GetCell(3).SetCellValue(titleModel.WireDiameterCode);
ws.GetRow(rowIndex + 10).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 4, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(4).SetCellValue(titleModel.FocalLength);
ws.GetRow(rowIndex + 10).GetCell(4).CellStyle = titleStyle;
ws.GetRow(rowIndex + 10).GetCell(7).SetCellValue(titleModel.EffectiveLength);
ws.GetRow(rowIndex + 10).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(8).SetCellValue(titleModel.TubeVoltage);
ws.GetRow(rowIndex + 10).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 11, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(11).SetCellValue(titleModel.RT_TubeCurrent);
ws.GetRow(rowIndex + 10).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(14).SetCellValue(titleModel.ExposureTime);
ws.GetRow(rowIndex + 10).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 16, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(16).SetCellValue(titleModel.EquipmentCode);
ws.GetRow(rowIndex + 10).GetCell(16).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 22, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(22).SetCellValue(titleModel.FocalSize);
ws.GetRow(rowIndex + 10).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 25, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(25).SetCellValue(titleModel.IntensifyingWay);
ws.GetRow(rowIndex + 10).GetCell(25).CellStyle = titleStyle;
ws.GetRow(rowIndex + 10).GetCell(29).SetCellValue(titleModel.FilmModel);
ws.GetRow(rowIndex + 10).GetCell(29).CellStyle = titleStyle;
//行12
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(0).CellStyle = titleStyle;
ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = titleStyle;
ws.GetRow(rowIndex + 11).GetCell(3).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 4, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(4).CellStyle = titleStyle;
ws.GetRow(rowIndex + 11).GetCell(7).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(8).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 11, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(11).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(14).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 16, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(16).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(16).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 22, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(22).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 25, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(25).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(25).CellStyle = titleStyle;
ws.GetRow(rowIndex + 11).GetCell(29).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(29).CellStyle = titleStyle;
//行13
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 0, 1);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(0).CellStyle = titleStyle;
ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = titleStyle;
ws.GetRow(rowIndex + 12).GetCell(3).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 4, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(4).CellStyle = titleStyle;
ws.GetRow(rowIndex + 12).GetCell(7).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(8).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 11, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(11).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 14, 15);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(14).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 16, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(16).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(16).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 22, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(22).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 25, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(25).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(25).CellStyle = titleStyle;
ws.GetRow(rowIndex + 12).GetCell(29).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(29).CellStyle = titleStyle;
rowIndex += 8;
}
//行14
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 5, 0, 29);
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检测批号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("焊缝编号");
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 8);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("焊工号");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 11);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("焊缝规格");
ws.GetRow(rowIndex + 5).GetCell(9).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 12, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(12).SetCellValue("片号");
ws.GetRow(rowIndex + 5).GetCell(12).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("缺陷性质");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue("缺陷定量");
ws.GetRow(rowIndex + 5).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(24).SetCellValue("评定级别");
ws.GetRow(rowIndex + 5).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(27).SetCellValue("备注");
ws.GetRow(rowIndex + 5).GetCell(27).CellStyle = titleStyle;
#endregion
#region
var dataTit = rowIndex + 6;
var tIndex = i == 1 ? 27 : 37;
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, dataTit, rowIndex + tIndex, 0, 29);
//每页数据开始和结束条数
var dStart = 0;
var dEnd = 0;
if (i == 1)
{
dStart = 0;
dEnd = 22;
}
else
{
dStart = i == 2 ? 22 : ((i - 2) * 32) + 22;
dEnd = ((i - 1) * 32) + 22;
}
//合并单元格
for (int hb = rowIndex + 6; hb <= rowIndex + tIndex; hb++)
{
region = new CellRangeAddress(hb, hb, 0, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 3, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 6, 8);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 9, 11);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 12, 14);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 15, 18);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 19, 23);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 24, 26);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 27, 29);
ws.AddMergedRegion(region);
}
//获取当前页数据
var pageTb = GetPageToTable(tb, dStart, dEnd);
//数据
for (int j = 0; j < pageTb.Rows.Count; j++)
{
int dataIndex = dataTit + j;
//检测批号
ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["EntrustCode"].ToString());
//焊缝编号
ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[j]["WeldingCode"].ToString());
//焊工号
ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WED_Code"].ToString());
//焊缝规格
ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[j]["JointDesc"].ToString());
//片号
ws.GetRow(dataIndex).GetCell(12).SetCellValue(pageTb.Rows[j]["FilmNum"].ToString());
//缺陷性质
ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[j]["DefectNature"].ToString());
//缺陷定量
ws.GetRow(dataIndex).GetCell(19).SetCellValue(pageTb.Rows[j]["DefectSize"].ToString());
//评定级别
ws.GetRow(dataIndex).GetCell(24).SetCellValue(pageTb.Rows[j]["DefectResult"].ToString());
//备注
ws.GetRow(dataIndex).GetCell(27).SetCellValue(pageTb.Rows[j]["Remark"].ToString());
}
rowIndex = rowIndex + tIndex;
#endregion
#region
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 1, rowIndex + 2, 0, 29);
//尾部行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("评片人:");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = leftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 17);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("");
ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = leftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("检测单位:(公章)");
ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = leftStyle;
//尾部行2
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("资格: RT 级");
ws.GetRow(rowIndex + 2).GetCell(0).CellStyle = leftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 17);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("");
ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = leftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("报告日期: 年 月 日");
ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = leftStyle;
rowIndex = rowIndex + 3;
}
else
{
rowIndex++;
}
#endregion
}
//ws.SetMargin(MarginType.LeftMargin, 0.3);
//ws.SetMargin(MarginType.RightMargin, 0.2);
//ws.SetMargin(MarginType.BottomMargin, 0.2);
//ws.SetMargin(MarginType.TopMargin, 0.2);
//ws.SetMargin(MarginType.FooterMargin, 0.3);
//ws.SetMargin(MarginType.HeaderMargin, 0.3);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("焊缝射线检测报告.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
#endregion
}
else if (ndtCode.Contains("PT"))
{
#region
if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID))
{
Alert.ShowInTop("请选择检测报告!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "焊缝渗透检测报告.xlsx";
if (Grid1.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("焊缝渗透检测报告");
#region
ws.SetColumnWidth(0, (8 * 256));
ws.SetColumnWidth(1, (4 * 256));
ws.SetColumnWidth(2, (4 * 256));
ws.SetColumnWidth(3, (2 * 256));
ws.SetColumnWidth(4, (2 * 256));
ws.SetColumnWidth(5, (3 * 256));
ws.SetColumnWidth(6, (2 * 256));
ws.SetColumnWidth(7, (2 * 256));
ws.SetColumnWidth(8, (4 * 256));
ws.SetColumnWidth(9, (2 * 256));
ws.SetColumnWidth(10, (3 * 256));
ws.SetColumnWidth(11, (3 * 256));
ws.SetColumnWidth(12, (3 * 256));
ws.SetColumnWidth(13, (3 * 256));
ws.SetColumnWidth(14, (2 * 256));
ws.SetColumnWidth(15, (3 * 256));
ws.SetColumnWidth(16, (2 * 256));
ws.SetColumnWidth(17, (2 * 256));
ws.SetColumnWidth(18, (2 * 256));
ws.SetColumnWidth(19, (2 * 256));
ws.SetColumnWidth(20, (2 * 256));
ws.SetColumnWidth(21, (2 * 256));
ws.SetColumnWidth(22, (3 * 256));
ws.SetColumnWidth(23, (3 * 256));
ws.SetColumnWidth(24, (3 * 256));
ws.SetColumnWidth(25, (2 * 256));
ws.SetColumnWidth(26, (3 * 256));
ws.SetColumnWidth(27, (3 * 256));
ws.SetColumnWidth(28, (3 * 256));
ws.SetColumnWidth(29, (3 * 256));
#endregion
//修改数据
reportModel.Printer = this.CurrUser.UserName;
reportModel.PrintTime = DateTime.Now.Date;
Funs.DB.SubmitChanges();
//列头数据
var titleModel = Funs.DB.View_TestingReportPrint.FirstOrDefault(s => s.WeldingId == reportModel.WeldingId && s.Specifications == reportModel.Specifications && s.NdtId == reportModel.NdtId && s.EntrustId == reportModel.EntrustId && s.STE_ID == reportModel.STE_ID && s.STE_ID2 == reportModel.STE_ID2 && s.WME_ID == reportModel.WME_ID);
if (titleModel is null)
{
Alert.ShowInTop("请编辑检测报告!", MessageBoxIcon.Warning);
return;
}
//列表
var listSql = @"SELECT
QualityRating.QualityRatingId,
QualityRating.MethodId,
QualityRating.WeldingId,
test.Ndt_NdtCode,
trust.EntrustCode,
JointInfo.JointDesc,
JointInfo.WeldingCode,
QualityRating.FilmNum,
(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a)+','+(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.CoverWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,
QualityRating.DefectNature,
QualityRating.DefectSize,
QualityRating.DefectResult,
QualityRating.Remark
FROM dbo.PV_BO_QualityRating AS QualityRating
left join PV_ManagementMethod as record on record.MethodId=QualityRating.MethodId
LEFT JOIN dbo.PV_EntrustRecord trust ON trust.Id = record.EntrustId
LEFT JOIN DBO.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId=QualityRating.WeldingId
left join PV_TestMethod as test on test.Ndt_Id=trust.NdtId
WHERE QualityRating.WeldingId=@WeldingId
AND JointInfo.JointDesc=@JointDesc
AND JointInfo.TextureMaterial1=@STE_ID AND (JointInfo.TextureMaterial2=@STE_ID2 or @STE_ID2='')
AND JointInfo.WmeId=@WME_ID
AND trust.NdtId = @NDT
AND trust.Id=@EntrustId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@WeldingId", reportModel.WeldingId));
listStr.Add(new SqlParameter("@JointDesc", reportModel.Specifications));
listStr.Add(new SqlParameter("@STE_ID", reportModel.STE_ID));
listStr.Add(new SqlParameter("@STE_ID2", reportModel.STE_ID2));
listStr.Add(new SqlParameter("@WME_ID", reportModel.WME_ID));
listStr.Add(new SqlParameter("@NDT", reportModel.NdtId));
listStr.Add(new SqlParameter("@EntrustId", reportModel.EntrustId));
var parameter = listStr.ToArray();
var tb = SQLHelper.GetDataTableRunText(listSql, parameter);
var tbNum = tb.Rows.Count;
var pageNum =
tbNum < 25 ? 1
: Math.Ceiling((float)(tbNum - 25) / 32) + 1;
#region
//头部样式大文字居中文字加粗
ICellStyle titleMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式大文字居中文字加粗上左右边框
ICellStyle titleSZYMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式居中无边框
ICellStyle titNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠右无边框
ICellStyle titriNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左无边框
ICellStyle titleNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠左上左右边框
ICellStyle titleSZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式居中上左右边框
ICellStyle titleSZYCerateStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠左下左右边框
ICellStyle titleXZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右下左右边框
ICellStyle titleXZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左左右边框
ICellStyle titleZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右左右边框
ICellStyle titleZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式居中左右边框
ICellStyle titleZYCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式居中
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//页码样式
ICellStyle pageStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
//文字靠左
ICellStyle leftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
#endregion
//循环页
for (int i = 1; i <= pageNum; i++)
{
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex, rowIndex, 0, 29, 25);
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 1, rowIndex + 3, 0, 29);
//行1
var region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 3);
ws.AddMergedRegion(region);
var reportCode = i == 1 ? "SH/T 3503—J352-1" : "SH/T 3503—J352-2";
ws.GetRow(rowIndex).GetCell(0).SetCellValue(reportCode);
ws.GetRow(rowIndex).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(4).SetCellValue("设备及构件");
ws.GetRow(rowIndex).GetCell(4).CellStyle = ws.GetRow(rowIndex).GetCell(5).CellStyle = ws.GetRow(rowIndex).GetCell(6).CellStyle = ws.GetRow(rowIndex).GetCell(7).CellStyle = ws.GetRow(rowIndex).GetCell(8).CellStyle = ws.GetRow(rowIndex).GetCell(9).CellStyle = ws.GetRow(rowIndex).GetCell(10).CellStyle = ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex).GetCell(12).CellStyle = ws.GetRow(rowIndex).GetCell(13).CellStyle = ws.GetRow(rowIndex).GetCell(14).CellStyle = ws.GetRow(rowIndex).GetCell(15).CellStyle = ws.GetRow(rowIndex).GetCell(16).CellStyle = ws.GetRow(rowIndex).GetCell(17).CellStyle = ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex).GetCell(19).CellStyle = titleSZYMaxBoldStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(20).SetCellValue($"工程名称:{titleModel.ProjectName}");
ws.GetRow(rowIndex).GetCell(20).CellStyle = ws.GetRow(rowIndex).GetCell(21).CellStyle = ws.GetRow(rowIndex).GetCell(22).CellStyle = ws.GetRow(rowIndex).GetCell(23).CellStyle = ws.GetRow(rowIndex).GetCell(24).CellStyle = ws.GetRow(rowIndex).GetCell(25).CellStyle = ws.GetRow(rowIndex).GetCell(26).CellStyle = ws.GetRow(rowIndex).GetCell(27).CellStyle = ws.GetRow(rowIndex).GetCell(28).CellStyle = ws.GetRow(rowIndex).GetCell(29).CellStyle = titleSZYLeftStyle;
//行2
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 19);
ws.AddMergedRegion(region);
var reportName = i == 1 ? "焊缝渗透检测报告" : "焊缝渗透检测报告(续)";
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(reportName);
ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = ws.GetRow(rowIndex + 1).GetCell(15).CellStyle = ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = ws.GetRow(rowIndex + 1).GetCell(17).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(19).CellStyle = titleMaxBoldStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = ws.GetRow(rowIndex + 1).GetCell(21).CellStyle = ws.GetRow(rowIndex + 1).GetCell(22).CellStyle = ws.GetRow(rowIndex + 1).GetCell(23).CellStyle = ws.GetRow(rowIndex + 1).GetCell(24).CellStyle = ws.GetRow(rowIndex + 1).GetCell(25).CellStyle = ws.GetRow(rowIndex + 1).GetCell(26).CellStyle = ws.GetRow(rowIndex + 1).GetCell(27).CellStyle = ws.GetRow(rowIndex + 1).GetCell(28).CellStyle = ws.GetRow(rowIndex + 1).GetCell(29).CellStyle = titleZYLeftStyle;
//行3
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"第 {i} 页共 {pageNum} 页");
ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = ws.GetRow(rowIndex + 2).GetCell(5).CellStyle = ws.GetRow(rowIndex + 2).GetCell(6).CellStyle = ws.GetRow(rowIndex + 2).GetCell(7).CellStyle = ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = ws.GetRow(rowIndex + 2).GetCell(9).CellStyle = ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = ws.GetRow(rowIndex + 2).GetCell(14).CellStyle = ws.GetRow(rowIndex + 2).GetCell(15).CellStyle = ws.GetRow(rowIndex + 2).GetCell(16).CellStyle = ws.GetRow(rowIndex + 2).GetCell(17).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(20).SetCellValue($"单位工程名称:{titleModel.InstallationName}");
ws.GetRow(rowIndex + 2).GetCell(20).CellStyle = ws.GetRow(rowIndex + 2).GetCell(21).CellStyle = ws.GetRow(rowIndex + 2).GetCell(22).CellStyle = ws.GetRow(rowIndex + 2).GetCell(23).CellStyle = ws.GetRow(rowIndex + 2).GetCell(24).CellStyle = ws.GetRow(rowIndex + 2).GetCell(25).CellStyle = ws.GetRow(rowIndex + 2).GetCell(26).CellStyle = ws.GetRow(rowIndex + 2).GetCell(27).CellStyle = ws.GetRow(rowIndex + 2).GetCell(28).CellStyle = ws.GetRow(rowIndex + 2).GetCell(29).CellStyle = titleZYLeftStyle;
//行4
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(4).CellStyle = ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = ws.GetRow(rowIndex + 3).GetCell(6).CellStyle = ws.GetRow(rowIndex + 3).GetCell(7).CellStyle = ws.GetRow(rowIndex + 3).GetCell(8).CellStyle = ws.GetRow(rowIndex + 3).GetCell(9).CellStyle = ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = ws.GetRow(rowIndex + 3).GetCell(13).CellStyle = ws.GetRow(rowIndex + 3).GetCell(14).CellStyle = ws.GetRow(rowIndex + 3).GetCell(15).CellStyle = ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = ws.GetRow(rowIndex + 3).GetCell(17).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(20).CellStyle = ws.GetRow(rowIndex + 3).GetCell(21).CellStyle = ws.GetRow(rowIndex + 3).GetCell(22).CellStyle = ws.GetRow(rowIndex + 3).GetCell(23).CellStyle = ws.GetRow(rowIndex + 3).GetCell(24).CellStyle = ws.GetRow(rowIndex + 3).GetCell(25).CellStyle = ws.GetRow(rowIndex + 3).GetCell(26).CellStyle = ws.GetRow(rowIndex + 3).GetCell(27).CellStyle = ws.GetRow(rowIndex + 3).GetCell(28).CellStyle = ws.GetRow(rowIndex + 3).GetCell(29).CellStyle = titleZYLeftStyle;
//行5
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 4, rowIndex + 4, 0, 29);
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("委托单位");
ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(titleModel.UnitName);
ws.GetRow(rowIndex + 4).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("施工单位");
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 20);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("镇海石化建安工程股份有限公司");
ws.GetRow(rowIndex + 4).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 21, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(21).SetCellValue("报告编号");
ws.GetRow(rowIndex + 4).GetCell(21).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 26, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(26).SetCellValue(titleModel.ReportCode);
ws.GetRow(rowIndex + 4).GetCell(26).CellStyle = titleStyle;
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 12, 0, 29);
//行6
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检件编号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("检件名称");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("检测标准");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue(titleModel.Ndt_TestStandardCode);
ws.GetRow(rowIndex + 5).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(24).SetCellValue("合格级别");
ws.GetRow(rowIndex + 5).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(27).SetCellValue(titleModel.Ndt_Level);
ws.GetRow(rowIndex + 5).GetCell(27).CellStyle = titleStyle;
//行7
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件材质");
ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue(titleModel.STE_Code);
ws.GetRow(rowIndex + 6).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue("焊接方法");
ws.GetRow(rowIndex + 6).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue(titleModel.WME_Name);
ws.GetRow(rowIndex + 6).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("检测比例");
ws.GetRow(rowIndex + 6).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(19).SetCellValue(titleModel.Ndt_NdtName);
ws.GetRow(rowIndex + 6).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(24).SetCellValue("热处理状态");
ws.GetRow(rowIndex + 6).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(27).SetCellValue(titleModel.HotProessState);
ws.GetRow(rowIndex + 6).GetCell(27).CellStyle = titleStyle;
//行8
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测时机");
ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue(titleModel.TestingTime);
ws.GetRow(rowIndex + 7).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue("表面状态");
ws.GetRow(rowIndex + 7).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue(titleModel.MT_SurfaceState);
ws.GetRow(rowIndex + 7).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(15).SetCellValue("检测方法");
ws.GetRow(rowIndex + 7).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(19).SetCellValue("ⅡC-d");
ws.GetRow(rowIndex + 7).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(24).SetCellValue("检测灵敏度");
ws.GetRow(rowIndex + 7).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(27).SetCellValue(titleModel.PT_SensitivityTestBlock);
ws.GetRow(rowIndex + 7).GetCell(27).CellStyle = titleStyle;
//行9
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("渗透温度");
ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue(titleModel.PT_OsmoticTemperature);
ws.GetRow(rowIndex + 8).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("观察方法");
ws.GetRow(rowIndex + 8).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue(titleModel.PT_ObservationMethod);
ws.GetRow(rowIndex + 8).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("施加方法");
ws.GetRow(rowIndex + 8).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(19).SetCellValue(titleModel.PT_ImposingMethod);
ws.GetRow(rowIndex + 8).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(24).SetCellValue("检测试块");
ws.GetRow(rowIndex + 8).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(27).SetCellValue(titleModel.TestBlock);
ws.GetRow(rowIndex + 8).GetCell(27).CellStyle = titleStyle;
//行10
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("渗透时间");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(3).SetCellValue(titleModel.PT_PermeationTime);
ws.GetRow(rowIndex + 9).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(6).SetCellValue("显像时间");
ws.GetRow(rowIndex + 9).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(11).SetCellValue(titleModel.PT_ImagingTime);
ws.GetRow(rowIndex + 9).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 15, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue("渗透检测剂牌号");
ws.GetRow(rowIndex + 9).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 22, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue(titleModel.PT_PenetrantGrade);
ws.GetRow(rowIndex + 9).GetCell(19).CellStyle = titleStyle;
rowIndex += 5;
}
//行14
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 5, 0, 29);
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检测批号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("焊缝编号");
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("焊工号");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("焊缝规格");
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 17);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("检测面");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 18, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(18).SetCellValue("缺陷情况或缺陷示意图编号");
ws.GetRow(rowIndex + 5).GetCell(18).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 25, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(25).SetCellValue("评定级别");
ws.GetRow(rowIndex + 5).GetCell(25).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(28).SetCellValue("备注");
ws.GetRow(rowIndex + 5).GetCell(28).CellStyle = titleStyle;
#endregion
#region
var dataTit = rowIndex + 6;
var tIndex = i == 1 ? 30 : 37;
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, dataTit, rowIndex + tIndex, 0, 29);
//每页数据开始和结束条数
var dStart = 0;
var dEnd = 0;
if (i == 1)
{
dStart = 0;
dEnd = 25;
}
else
{
dStart = i == 2 ? 25 : ((i - 2) * 32) + 25;
dEnd = ((i - 1) * 32) + 25;
}
//合并单元格
for (int hb = rowIndex + 6; hb <= rowIndex + tIndex; hb++)
{
region = new CellRangeAddress(hb, hb, 0, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 3, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 6, 10);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 11, 14);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 15, 17);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 18, 24);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 25, 27);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 28, 29);
ws.AddMergedRegion(region);
}
//获取当前页数据
var pageTb = GetPageToTable(tb, dStart, dEnd);
//数据
for (int j = 0; j < pageTb.Rows.Count; j++)
{
int dataIndex = dataTit + j;
//检测批号
ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["EntrustCode"].ToString());
//焊缝编号
ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[j]["WeldingCode"].ToString());
//焊工号
ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WED_Code"].ToString());
//焊缝规格
ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[j]["JointDesc"].ToString());
//检测面
ws.GetRow(dataIndex).GetCell(12).SetCellValue("");
//缺陷情况或缺陷示意图编号
ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[j]["FilmNum"].ToString());
//评定级别
ws.GetRow(dataIndex).GetCell(19).SetCellValue(pageTb.Rows[j]["DefectResult"].ToString());
//备注
ws.GetRow(dataIndex).GetCell(24).SetCellValue(pageTb.Rows[j]["Remark"].ToString());
}
rowIndex = rowIndex + tIndex;
#endregion
#region
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleSZYLeftStyle, rowIndex + 1, rowIndex + 1, 0, 29);
//尾部行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检测人:");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("审核人:");
ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("检测单位:(公章)");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = titleSZYLeftStyle;
//尾部行2
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleXZYLeftStyle, rowIndex + 2, rowIndex + 2, 0, 29);
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("资格: PT 级");
ws.GetRow(rowIndex + 2).GetCell(0).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("资格: PT 级");
ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("报告日期: 年 月 日");
ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = titleXZYLeftStyle;
rowIndex = rowIndex + 3;
}
else
{
rowIndex++;
}
#endregion
}
//ws.SetMargin(MarginType.LeftMargin, 0.3);
//ws.SetMargin(MarginType.RightMargin, 0.2);
//ws.SetMargin(MarginType.BottomMargin, 0.2);
//ws.SetMargin(MarginType.TopMargin, 0.2);
//ws.SetMargin(MarginType.FooterMargin, 0.3);
//ws.SetMargin(MarginType.HeaderMargin, 0.3);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("焊缝渗透检测报告.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
#endregion
}
else if (ndtCode.Contains("MT"))
{
#region
if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID))
{
Alert.ShowInTop("请选择检测报告!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "焊缝磁粉检测报告.xlsx";
if (Grid1.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("焊缝磁粉检测报告");
#region
ws.SetColumnWidth(0, (8 * 256));
ws.SetColumnWidth(1, (4 * 256));
ws.SetColumnWidth(2, (4 * 256));
ws.SetColumnWidth(3, (2 * 256));
ws.SetColumnWidth(4, (2 * 256));
ws.SetColumnWidth(5, (3 * 256));
ws.SetColumnWidth(6, (2 * 256));
ws.SetColumnWidth(7, (2 * 256));
ws.SetColumnWidth(8, (4 * 256));
ws.SetColumnWidth(9, (2 * 256));
ws.SetColumnWidth(10, (3 * 256));
ws.SetColumnWidth(11, (3 * 256));
ws.SetColumnWidth(12, (3 * 256));
ws.SetColumnWidth(13, (3 * 256));
ws.SetColumnWidth(14, (2 * 256));
ws.SetColumnWidth(15, (3 * 256));
ws.SetColumnWidth(16, (2 * 256));
ws.SetColumnWidth(17, (2 * 256));
ws.SetColumnWidth(18, (2 * 256));
ws.SetColumnWidth(19, (2 * 256));
ws.SetColumnWidth(20, (2 * 256));
ws.SetColumnWidth(21, (2 * 256));
ws.SetColumnWidth(22, (3 * 256));
ws.SetColumnWidth(23, (3 * 256));
ws.SetColumnWidth(24, (3 * 256));
ws.SetColumnWidth(25, (2 * 256));
ws.SetColumnWidth(26, (3 * 256));
ws.SetColumnWidth(27, (3 * 256));
ws.SetColumnWidth(28, (3 * 256));
ws.SetColumnWidth(29, (3 * 256));
#endregion
//修改数据
reportModel.Printer = this.CurrUser.UserName;
reportModel.PrintTime = DateTime.Now.Date;
Funs.DB.SubmitChanges();
//列头数据
var titleModel = Funs.DB.View_TestingReportPrint.FirstOrDefault(s => s.WeldingId == reportModel.WeldingId && s.Specifications == reportModel.Specifications && s.NdtId == reportModel.NdtId && s.EntrustId == reportModel.EntrustId && s.STE_ID == reportModel.STE_ID && s.STE_ID2 == reportModel.STE_ID2 && s.WME_ID == reportModel.WME_ID);
if (titleModel is null)
{
Alert.ShowInTop("请编辑检测报告!", MessageBoxIcon.Warning);
return;
}
//列表
var listSql = @"SELECT QualityRating.QualityRatingId,
QualityRating.MethodId,
QualityRating.WeldingId,
test.Ndt_NdtCode,
record.EntrustCode,
JointInfo.JointDesc,
JointInfo.WeldingCode,
QualityRating.FilmNum,
(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a)+','+(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.CoverWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,
QualityRating.DefectNature,
QualityRating.DefectSize,
QualityRating.DefectResult,
QualityRating.Remark
FROM dbo.PV_BO_QualityRating AS QualityRating
left join PV_ManagementMethod as record on record.MethodId=QualityRating.MethodId
LEFT JOIN dbo.PV_EntrustRecord trust ON trust.Id = record.EntrustId
LEFT JOIN DBO.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId=QualityRating.WeldingId
left join PV_TestMethod as test on test.Ndt_Id=trust.NdtId
WHERE QualityRating.WeldingId=@WeldingId
AND JointInfo.JointDesc=@JointDesc
AND JointInfo.TextureMaterial1=@STE_ID AND (JointInfo.TextureMaterial2=@STE_ID2 or @STE_ID2='')
AND JointInfo.WmeId=@WME_ID
AND trust.NdtId = @NDT
AND trust.Id=@EntrustId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@WeldingId", reportModel.WeldingId));
listStr.Add(new SqlParameter("@JointDesc", reportModel.Specifications));
listStr.Add(new SqlParameter("@STE_ID", reportModel.STE_ID));
listStr.Add(new SqlParameter("@STE_ID2", reportModel.STE_ID2));
listStr.Add(new SqlParameter("@WME_ID", reportModel.WME_ID));
listStr.Add(new SqlParameter("@NDT", reportModel.NdtId));
listStr.Add(new SqlParameter("@EntrustId", reportModel.EntrustId));
var parameter = listStr.ToArray();
var tb = SQLHelper.GetDataTableRunText(listSql, parameter);
var tbNum = tb.Rows.Count;
var pageNum =
tbNum < 25 ? 1
: Math.Ceiling((float)(tbNum - 25) / 32) + 1;
#region
//头部样式大文字居中文字加粗
ICellStyle titleMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式大文字居中文字加粗上左右边框
ICellStyle titleSZYMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式居中无边框
ICellStyle titNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠右无边框
ICellStyle titriNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左无边框
ICellStyle titleNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠左上左右边框
ICellStyle titleSZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式居中上左右边框
ICellStyle titleSZYCerateStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠左下左右边框
ICellStyle titleXZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右下左右边框
ICellStyle titleXZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左左右边框
ICellStyle titleZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右左右边框
ICellStyle titleZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式居中左右边框
ICellStyle titleZYCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式居中
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//页码样式
ICellStyle pageStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
//文字靠左
ICellStyle leftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
#endregion
//循环页
for (int i = 1; i <= pageNum; i++)
{
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex, rowIndex, 0, 29, 25);
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 1, rowIndex + 3, 0, 29);
//行1
var region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 3);
ws.AddMergedRegion(region);
var reportCode = i == 1 ? "SH/T 3503—J351-1" : "SH/T 3503—J351-2";
ws.GetRow(rowIndex).GetCell(0).SetCellValue(reportCode);
ws.GetRow(rowIndex).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(4).SetCellValue("设备及构件");
ws.GetRow(rowIndex).GetCell(4).CellStyle = ws.GetRow(rowIndex).GetCell(5).CellStyle = ws.GetRow(rowIndex).GetCell(6).CellStyle = ws.GetRow(rowIndex).GetCell(7).CellStyle = ws.GetRow(rowIndex).GetCell(8).CellStyle = ws.GetRow(rowIndex).GetCell(9).CellStyle = ws.GetRow(rowIndex).GetCell(10).CellStyle = ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex).GetCell(12).CellStyle = ws.GetRow(rowIndex).GetCell(13).CellStyle = ws.GetRow(rowIndex).GetCell(14).CellStyle = ws.GetRow(rowIndex).GetCell(15).CellStyle = ws.GetRow(rowIndex).GetCell(16).CellStyle = ws.GetRow(rowIndex).GetCell(17).CellStyle = ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex).GetCell(19).CellStyle = titleSZYMaxBoldStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(20).SetCellValue($"工程名称:{titleModel.ProjectName}");
ws.GetRow(rowIndex).GetCell(20).CellStyle = ws.GetRow(rowIndex).GetCell(21).CellStyle = ws.GetRow(rowIndex).GetCell(22).CellStyle = ws.GetRow(rowIndex).GetCell(23).CellStyle = ws.GetRow(rowIndex).GetCell(24).CellStyle = ws.GetRow(rowIndex).GetCell(25).CellStyle = ws.GetRow(rowIndex).GetCell(26).CellStyle = ws.GetRow(rowIndex).GetCell(27).CellStyle = ws.GetRow(rowIndex).GetCell(28).CellStyle = ws.GetRow(rowIndex).GetCell(29).CellStyle = titleSZYLeftStyle;
//行2
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 19);
ws.AddMergedRegion(region);
var reportName = i == 1 ? "焊缝磁粉检测报告" : "焊缝磁粉检测报告(续)";
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(reportName);
ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = ws.GetRow(rowIndex + 1).GetCell(15).CellStyle = ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = ws.GetRow(rowIndex + 1).GetCell(17).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(19).CellStyle = titleMaxBoldStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = ws.GetRow(rowIndex + 1).GetCell(21).CellStyle = ws.GetRow(rowIndex + 1).GetCell(22).CellStyle = ws.GetRow(rowIndex + 1).GetCell(23).CellStyle = ws.GetRow(rowIndex + 1).GetCell(24).CellStyle = ws.GetRow(rowIndex + 1).GetCell(25).CellStyle = ws.GetRow(rowIndex + 1).GetCell(26).CellStyle = ws.GetRow(rowIndex + 1).GetCell(27).CellStyle = ws.GetRow(rowIndex + 1).GetCell(28).CellStyle = ws.GetRow(rowIndex + 1).GetCell(29).CellStyle = titleZYLeftStyle;
//行3
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"第 {i} 页共 {pageNum} 页");
ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = ws.GetRow(rowIndex + 2).GetCell(5).CellStyle = ws.GetRow(rowIndex + 2).GetCell(6).CellStyle = ws.GetRow(rowIndex + 2).GetCell(7).CellStyle = ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = ws.GetRow(rowIndex + 2).GetCell(9).CellStyle = ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = ws.GetRow(rowIndex + 2).GetCell(14).CellStyle = ws.GetRow(rowIndex + 2).GetCell(15).CellStyle = ws.GetRow(rowIndex + 2).GetCell(16).CellStyle = ws.GetRow(rowIndex + 2).GetCell(17).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(20).SetCellValue($"单位工程名称:{titleModel.InstallationName}");
ws.GetRow(rowIndex + 2).GetCell(20).CellStyle = ws.GetRow(rowIndex + 2).GetCell(21).CellStyle = ws.GetRow(rowIndex + 2).GetCell(22).CellStyle = ws.GetRow(rowIndex + 2).GetCell(23).CellStyle = ws.GetRow(rowIndex + 2).GetCell(24).CellStyle = ws.GetRow(rowIndex + 2).GetCell(25).CellStyle = ws.GetRow(rowIndex + 2).GetCell(26).CellStyle = ws.GetRow(rowIndex + 2).GetCell(27).CellStyle = ws.GetRow(rowIndex + 2).GetCell(28).CellStyle = ws.GetRow(rowIndex + 2).GetCell(29).CellStyle = titleZYLeftStyle;
//行4
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(4).CellStyle = ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = ws.GetRow(rowIndex + 3).GetCell(6).CellStyle = ws.GetRow(rowIndex + 3).GetCell(7).CellStyle = ws.GetRow(rowIndex + 3).GetCell(8).CellStyle = ws.GetRow(rowIndex + 3).GetCell(9).CellStyle = ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = ws.GetRow(rowIndex + 3).GetCell(13).CellStyle = ws.GetRow(rowIndex + 3).GetCell(14).CellStyle = ws.GetRow(rowIndex + 3).GetCell(15).CellStyle = ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = ws.GetRow(rowIndex + 3).GetCell(17).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(20).CellStyle = ws.GetRow(rowIndex + 3).GetCell(21).CellStyle = ws.GetRow(rowIndex + 3).GetCell(22).CellStyle = ws.GetRow(rowIndex + 3).GetCell(23).CellStyle = ws.GetRow(rowIndex + 3).GetCell(24).CellStyle = ws.GetRow(rowIndex + 3).GetCell(25).CellStyle = ws.GetRow(rowIndex + 3).GetCell(26).CellStyle = ws.GetRow(rowIndex + 3).GetCell(27).CellStyle = ws.GetRow(rowIndex + 3).GetCell(28).CellStyle = ws.GetRow(rowIndex + 3).GetCell(29).CellStyle = titleZYLeftStyle;
//行5
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 4, rowIndex + 4, 0, 29);
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("委托单位");
ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(titleModel.UnitName);
ws.GetRow(rowIndex + 4).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("施工单位");
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 20);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("镇海石化建安工程股份有限公司");
ws.GetRow(rowIndex + 4).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 21, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(21).SetCellValue("报告编号");
ws.GetRow(rowIndex + 4).GetCell(21).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 26, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(26).SetCellValue(titleModel.ReportCode);
ws.GetRow(rowIndex + 4).GetCell(26).CellStyle = titleStyle;
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 12, 0, 29);
//行6
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检件编号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("检件名称");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("检测标准");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue(titleModel.Ndt_TestStandardCode);
ws.GetRow(rowIndex + 5).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(24).SetCellValue("合格级别");
ws.GetRow(rowIndex + 5).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(27).SetCellValue(titleModel.Ndt_Level);
ws.GetRow(rowIndex + 5).GetCell(27).CellStyle = titleStyle;
//行7
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件材质");
ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue(titleModel.STE_Code);
ws.GetRow(rowIndex + 6).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue("焊接方法");
ws.GetRow(rowIndex + 6).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue(titleModel.WME_Name);
ws.GetRow(rowIndex + 6).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("检测比例");
ws.GetRow(rowIndex + 6).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(19).SetCellValue(titleModel.Ndt_NdtName);
ws.GetRow(rowIndex + 6).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(24).SetCellValue("热处理状态");
ws.GetRow(rowIndex + 6).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(27).SetCellValue(titleModel.HotProessState);
ws.GetRow(rowIndex + 6).GetCell(27).CellStyle = titleStyle;
//行8
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测时机");
ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue(titleModel.TestingTime);
ws.GetRow(rowIndex + 7).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue("表面状态");
ws.GetRow(rowIndex + 7).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue(titleModel.MT_SurfaceState);
ws.GetRow(rowIndex + 7).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(15).SetCellValue("电流类型");
ws.GetRow(rowIndex + 7).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(19).SetCellValue(titleModel.MT_CurrentType);
ws.GetRow(rowIndex + 7).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(24).SetCellValue("磁化方法");
ws.GetRow(rowIndex + 7).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(27).SetCellValue(titleModel.MT_TestMethod);
ws.GetRow(rowIndex + 7).GetCell(27).CellStyle = titleStyle;
//行9
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("设备型号");
ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue(titleModel.UT_EquipmentCode);
ws.GetRow(rowIndex + 8).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("电/磁极间距");
ws.GetRow(rowIndex + 8).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue(titleModel.PoleSpacing);
ws.GetRow(rowIndex + 8).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("提升力/电流");
ws.GetRow(rowIndex + 8).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(19).SetCellValue(titleModel.MT_LiftingPower);
ws.GetRow(rowIndex + 8).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(24).SetCellValue("磁化时间");
ws.GetRow(rowIndex + 8).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(27).SetCellValue(titleModel.MT_MagnetizationTime);
ws.GetRow(rowIndex + 8).GetCell(27).CellStyle = titleStyle;
//行10
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("磁粉种类");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(3).SetCellValue(titleModel.MT_MagneticPowderType);
ws.GetRow(rowIndex + 9).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(6).SetCellValue("磁悬液浓度");
ws.GetRow(rowIndex + 9).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(11).SetCellValue(titleModel.MT_Concentration);
ws.GetRow(rowIndex + 9).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue("施加方法");
ws.GetRow(rowIndex + 9).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue(titleModel.MT_ImposingMethod);
ws.GetRow(rowIndex + 9).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(24).SetCellValue("灵敏度试片");
ws.GetRow(rowIndex + 9).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(27).SetCellValue(titleModel.MT_SensitivityTestBlock);
ws.GetRow(rowIndex + 9).GetCell(27).CellStyle = titleStyle;
rowIndex += 5;
}
//行14
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 5, 0, 29);
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检测批号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("焊缝编号");
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("焊工号");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("焊缝规格");
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 17);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("检测面");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 18, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(18).SetCellValue("缺陷情况或缺陷示意图编号");
ws.GetRow(rowIndex + 5).GetCell(18).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 25, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(25).SetCellValue("评定级别");
ws.GetRow(rowIndex + 5).GetCell(25).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(28).SetCellValue("备注");
ws.GetRow(rowIndex + 5).GetCell(28).CellStyle = titleStyle;
#endregion
#region
var dataTit = rowIndex + 6;
var tIndex = i == 1 ? 30 : 37;
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, dataTit, rowIndex + tIndex, 0, 29);
//每页数据开始和结束条数
var dStart = 0;
var dEnd = 0;
if (i == 1)
{
dStart = 0;
dEnd = 25;
}
else
{
dStart = i == 2 ? 25 : ((i - 2) * 32) + 25;
dEnd = ((i - 1) * 32) + 25;
}
//合并单元格
for (int hb = rowIndex + 6; hb <= rowIndex + tIndex; hb++)
{
region = new CellRangeAddress(hb, hb, 0, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 3, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 6, 10);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 11, 14);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 15, 17);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 18, 24);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 25, 27);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 28, 29);
ws.AddMergedRegion(region);
}
//获取当前页数据
var pageTb = GetPageToTable(tb, dStart, dEnd);
//数据
for (int j = 0; j < pageTb.Rows.Count; j++)
{
int dataIndex = dataTit + j;
//检测批号
ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["EntrustCode"].ToString());
//焊缝编号
ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[j]["WeldingCode"].ToString());
//焊工号
ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WED_Code"].ToString());
//焊缝规格
ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[j]["JointDesc"].ToString());
//检测面
ws.GetRow(dataIndex).GetCell(12).SetCellValue("");
//缺陷情况或缺陷示意图编号
ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[j]["FilmNum"].ToString());
//评定级别
ws.GetRow(dataIndex).GetCell(19).SetCellValue(pageTb.Rows[j]["DefectResult"].ToString());
//备注
ws.GetRow(dataIndex).GetCell(24).SetCellValue(pageTb.Rows[j]["Remark"].ToString());
}
rowIndex = rowIndex + tIndex;
#endregion
#region
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleSZYLeftStyle, rowIndex + 1, rowIndex + 1, 0, 29);
//尾部行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检测人:");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("审核人:");
ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("检测单位:(公章)");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = titleSZYLeftStyle;
//尾部行2
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleXZYLeftStyle, rowIndex + 2, rowIndex + 2, 0, 29);
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("资格: MT 级");
ws.GetRow(rowIndex + 2).GetCell(0).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("资格: MT 级");
ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("报告日期: 年 月 日");
ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = titleXZYLeftStyle;
ws.CreateRow(rowIndex + 3);
ws.GetRow(rowIndex + 3).HeightInPoints = 19;
rowIndex = rowIndex + 3;
}
else
{
rowIndex = rowIndex + 1;
}
#endregion
}
//ws.SetMargin(MarginType.LeftMargin, 0.3);
//ws.SetMargin(MarginType.RightMargin, 0.2);
//ws.SetMargin(MarginType.BottomMargin, 0.2);
//ws.SetMargin(MarginType.TopMargin, 0.2);
//ws.SetMargin(MarginType.FooterMargin, 0.3);
//ws.SetMargin(MarginType.HeaderMargin, 0.3);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("焊缝磁粉检测报告.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
#endregion
}
else if (ndtCode.Contains("UT") || ndtCode.Contains("TOFD") || ndtCode.Contains("PAUT"))
{
#region
if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID))
{
Alert.ShowInTop("请选择检测报告!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "焊缝超声检测报告.xlsx";
if (Grid1.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("焊缝超声检测报告");
#region
ws.SetColumnWidth(0, (8 * 256));
ws.SetColumnWidth(1, (4 * 256));
ws.SetColumnWidth(2, (4 * 256));
ws.SetColumnWidth(3, (2 * 256));
ws.SetColumnWidth(4, (2 * 256));
ws.SetColumnWidth(5, (3 * 256));
ws.SetColumnWidth(6, (2 * 256));
ws.SetColumnWidth(7, (2 * 256));
ws.SetColumnWidth(8, (4 * 256));
ws.SetColumnWidth(9, (2 * 256));
ws.SetColumnWidth(10, (3 * 256));
ws.SetColumnWidth(11, (3 * 256));
ws.SetColumnWidth(12, (3 * 256));
ws.SetColumnWidth(13, (3 * 256));
ws.SetColumnWidth(14, (2 * 256));
ws.SetColumnWidth(15, (3 * 256));
ws.SetColumnWidth(16, (2 * 256));
ws.SetColumnWidth(17, (2 * 256));
ws.SetColumnWidth(18, (2 * 256));
ws.SetColumnWidth(19, (2 * 256));
ws.SetColumnWidth(20, (2 * 256));
ws.SetColumnWidth(21, (2 * 256));
ws.SetColumnWidth(22, (3 * 256));
ws.SetColumnWidth(23, (3 * 256));
ws.SetColumnWidth(24, (3 * 256));
ws.SetColumnWidth(25, (2 * 256));
ws.SetColumnWidth(26, (3 * 256));
ws.SetColumnWidth(27, (3 * 256));
ws.SetColumnWidth(28, (3 * 256));
ws.SetColumnWidth(29, (3 * 256));
#endregion
//修改数据
reportModel.Printer = this.CurrUser.UserName;
reportModel.PrintTime = DateTime.Now.Date;
Funs.DB.SubmitChanges();
//列头数据
var titleModel = Funs.DB.View_TestingReportPrint.FirstOrDefault(s => s.WeldingId == reportModel.WeldingId && s.Specifications == reportModel.Specifications && s.NdtId == reportModel.NdtId && s.EntrustId == reportModel.EntrustId && s.STE_ID == reportModel.STE_ID && s.STE_ID2 == reportModel.STE_ID2 && s.WME_ID == reportModel.WME_ID);
if (titleModel is null)
{
Alert.ShowInTop("请编辑检测报告!", MessageBoxIcon.Warning);
return;
}
//列表
var listSql = @"SELECT QualityRating.QualityRatingId,
QualityRating.MethodId,
QualityRating.WeldingId,
test.Ndt_NdtCode,
JointInfo.JointDesc,
JointInfo.WeldingCode,
QualityRating.FilmNum,
(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a)+','+(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select Welder.WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.CoverWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,
QualityRating.DefectNature,
QualityRating.DefectSize,
QualityRating.DefectResult,
trust.EntrustCode,
QualityRating.Remark
FROM dbo.PV_BO_QualityRating AS QualityRating
left join PV_ManagementMethod as record on record.MethodId=QualityRating.MethodId
LEFT JOIN dbo.PV_EntrustRecord trust ON trust.Id = record.EntrustId
LEFT JOIN DBO.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId=QualityRating.WeldingId
left join PV_TestMethod as test on test.Ndt_Id=trust.NdtId
WHERE QualityRating.WeldingId=@WeldingId
AND JointInfo.JointDesc=@JointDesc
AND JointInfo.TextureMaterial1=@STE_ID AND (JointInfo.TextureMaterial2=@STE_ID2 or @STE_ID2='')
AND JointInfo.WmeId=@WME_ID
AND trust.NdtId = @NDT
AND trust.Id=@EntrustId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@WeldingId", reportModel.WeldingId));
listStr.Add(new SqlParameter("@JointDesc", reportModel.Specifications));
listStr.Add(new SqlParameter("@STE_ID", reportModel.STE_ID));
listStr.Add(new SqlParameter("@STE_ID2", reportModel.STE_ID2));
listStr.Add(new SqlParameter("@WME_ID", reportModel.WME_ID));
listStr.Add(new SqlParameter("@NDT", reportModel.NdtId));
listStr.Add(new SqlParameter("@EntrustId", reportModel.EntrustId));
var parameter = listStr.ToArray();
var tb = SQLHelper.GetDataTableRunText(listSql, parameter);
var tbNum = tb.Rows.Count;
var pageNum =
tbNum < 22 ? 1
: Math.Ceiling((float)(tbNum - 22) / 32) + 1;
#region
//头部样式大文字居中文字加粗
ICellStyle titleMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式大文字居中文字加粗上左右边框
ICellStyle titleSZYMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式居中无边框
ICellStyle titNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠右无边框
ICellStyle titriNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左无边框
ICellStyle titleNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠左上左右边框
ICellStyle titleSZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式居中上左右边框
ICellStyle titleSZYCerateStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式靠左下左右边框
ICellStyle titleXZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右下左右边框
ICellStyle titleXZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式靠左左右边框
ICellStyle titleZYLeftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 9, true);
//头部样式靠右左右边框
ICellStyle titleZYRightStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 9, true);
//头部样式居中左右边框
ICellStyle titleZYCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//头部样式居中
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true);
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//页码样式
ICellStyle pageStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
//文字靠左
ICellStyle leftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
#endregion
//循环页
for (int i = 1; i <= pageNum; i++)
{
#region
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex, rowIndex, 0, 29, 25);
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 1, rowIndex + 3, 0, 29);
//行1
var region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 3);
ws.AddMergedRegion(region);
var reportCode = i == 1 ? "SH/T 3503—J350-1" : "SH/T 3503—J350-2";
ws.GetRow(rowIndex).GetCell(0).SetCellValue(reportCode);
ws.GetRow(rowIndex).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(4).SetCellValue("设备及构件");
ws.GetRow(rowIndex).GetCell(4).CellStyle = ws.GetRow(rowIndex).GetCell(5).CellStyle = ws.GetRow(rowIndex).GetCell(6).CellStyle = ws.GetRow(rowIndex).GetCell(7).CellStyle = ws.GetRow(rowIndex).GetCell(8).CellStyle = ws.GetRow(rowIndex).GetCell(9).CellStyle = ws.GetRow(rowIndex).GetCell(10).CellStyle = ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex).GetCell(12).CellStyle = ws.GetRow(rowIndex).GetCell(13).CellStyle = ws.GetRow(rowIndex).GetCell(14).CellStyle = ws.GetRow(rowIndex).GetCell(15).CellStyle = ws.GetRow(rowIndex).GetCell(16).CellStyle = ws.GetRow(rowIndex).GetCell(17).CellStyle = ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex).GetCell(19).CellStyle = titleSZYMaxBoldStyle;
region = new CellRangeAddress(rowIndex, rowIndex, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(20).SetCellValue($"工程名称:{titleModel.ProjectName}");
ws.GetRow(rowIndex).GetCell(20).CellStyle = ws.GetRow(rowIndex).GetCell(21).CellStyle = ws.GetRow(rowIndex).GetCell(22).CellStyle = ws.GetRow(rowIndex).GetCell(23).CellStyle = ws.GetRow(rowIndex).GetCell(24).CellStyle = ws.GetRow(rowIndex).GetCell(25).CellStyle = ws.GetRow(rowIndex).GetCell(26).CellStyle = ws.GetRow(rowIndex).GetCell(27).CellStyle = ws.GetRow(rowIndex).GetCell(28).CellStyle = ws.GetRow(rowIndex).GetCell(29).CellStyle = titleSZYLeftStyle;
//行2
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 19);
ws.AddMergedRegion(region);
var reportName = i == 1 ? "焊缝超声检测报告" : "焊缝超声检测报告(续)";
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(reportName);
ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = ws.GetRow(rowIndex + 1).GetCell(15).CellStyle = ws.GetRow(rowIndex + 1).GetCell(16).CellStyle = ws.GetRow(rowIndex + 1).GetCell(17).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(19).CellStyle = titleMaxBoldStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = ws.GetRow(rowIndex + 1).GetCell(21).CellStyle = ws.GetRow(rowIndex + 1).GetCell(22).CellStyle = ws.GetRow(rowIndex + 1).GetCell(23).CellStyle = ws.GetRow(rowIndex + 1).GetCell(24).CellStyle = ws.GetRow(rowIndex + 1).GetCell(25).CellStyle = ws.GetRow(rowIndex + 1).GetCell(26).CellStyle = ws.GetRow(rowIndex + 1).GetCell(27).CellStyle = ws.GetRow(rowIndex + 1).GetCell(28).CellStyle = ws.GetRow(rowIndex + 1).GetCell(29).CellStyle = titleZYLeftStyle;
//行3
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"第 {i} 页共 {pageNum} 页");
ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = ws.GetRow(rowIndex + 2).GetCell(5).CellStyle = ws.GetRow(rowIndex + 2).GetCell(6).CellStyle = ws.GetRow(rowIndex + 2).GetCell(7).CellStyle = ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = ws.GetRow(rowIndex + 2).GetCell(9).CellStyle = ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = ws.GetRow(rowIndex + 2).GetCell(14).CellStyle = ws.GetRow(rowIndex + 2).GetCell(15).CellStyle = ws.GetRow(rowIndex + 2).GetCell(16).CellStyle = ws.GetRow(rowIndex + 2).GetCell(17).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(20).SetCellValue($"单位工程名称:{titleModel.InstallationName}");
ws.GetRow(rowIndex + 2).GetCell(20).CellStyle = ws.GetRow(rowIndex + 2).GetCell(21).CellStyle = ws.GetRow(rowIndex + 2).GetCell(22).CellStyle = ws.GetRow(rowIndex + 2).GetCell(23).CellStyle = ws.GetRow(rowIndex + 2).GetCell(24).CellStyle = ws.GetRow(rowIndex + 2).GetCell(25).CellStyle = ws.GetRow(rowIndex + 2).GetCell(26).CellStyle = ws.GetRow(rowIndex + 2).GetCell(27).CellStyle = ws.GetRow(rowIndex + 2).GetCell(28).CellStyle = ws.GetRow(rowIndex + 2).GetCell(29).CellStyle = titleZYLeftStyle;
//行4
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(4).CellStyle = ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = ws.GetRow(rowIndex + 3).GetCell(6).CellStyle = ws.GetRow(rowIndex + 3).GetCell(7).CellStyle = ws.GetRow(rowIndex + 3).GetCell(8).CellStyle = ws.GetRow(rowIndex + 3).GetCell(9).CellStyle = ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = ws.GetRow(rowIndex + 3).GetCell(13).CellStyle = ws.GetRow(rowIndex + 3).GetCell(14).CellStyle = ws.GetRow(rowIndex + 3).GetCell(15).CellStyle = ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = ws.GetRow(rowIndex + 3).GetCell(17).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = titleZYCenterStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("");
ws.GetRow(rowIndex + 3).GetCell(20).CellStyle = ws.GetRow(rowIndex + 3).GetCell(21).CellStyle = ws.GetRow(rowIndex + 3).GetCell(22).CellStyle = ws.GetRow(rowIndex + 3).GetCell(23).CellStyle = ws.GetRow(rowIndex + 3).GetCell(24).CellStyle = ws.GetRow(rowIndex + 3).GetCell(25).CellStyle = ws.GetRow(rowIndex + 3).GetCell(26).CellStyle = ws.GetRow(rowIndex + 3).GetCell(27).CellStyle = ws.GetRow(rowIndex + 3).GetCell(28).CellStyle = ws.GetRow(rowIndex + 3).GetCell(29).CellStyle = titleZYLeftStyle;
//行5
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 4, rowIndex + 4, 0, 29);
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("委托单位");
ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(titleModel.UnitName);
ws.GetRow(rowIndex + 4).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("施工单位");
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 20);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("镇海石化建安工程股份有限公司");
ws.GetRow(rowIndex + 4).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 21, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(21).SetCellValue("报告编号");
ws.GetRow(rowIndex + 4).GetCell(21).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 26, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(26).SetCellValue(titleModel.ReportCode);
ws.GetRow(rowIndex + 4).GetCell(26).CellStyle = titleStyle;
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 12, 0, 29);
//行6
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检件编号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("检件名称");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue(titleModel.WeldingCode);
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("检测标准");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue(titleModel.Ndt_TestStandardCode);
ws.GetRow(rowIndex + 5).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(24).SetCellValue("合格级别");
ws.GetRow(rowIndex + 5).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(27).SetCellValue(titleModel.Ndt_Level);
ws.GetRow(rowIndex + 5).GetCell(27).CellStyle = titleStyle;
//行7
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件材质");
ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue(titleModel.STE_Code);
ws.GetRow(rowIndex + 6).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(6).SetCellValue("焊接方法");
ws.GetRow(rowIndex + 6).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue(titleModel.WME_Name);
ws.GetRow(rowIndex + 6).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("技术等级");
ws.GetRow(rowIndex + 6).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(19).SetCellValue(titleModel.UT_TechnicalGrade);
ws.GetRow(rowIndex + 6).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(24).SetCellValue("检测比例");
ws.GetRow(rowIndex + 6).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(27).SetCellValue(titleModel.Ndt_NdtName);
ws.GetRow(rowIndex + 6).GetCell(27).CellStyle = titleStyle;
//行8
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测时机");
ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue(titleModel.TestingTime);
ws.GetRow(rowIndex + 7).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(6).SetCellValue("坡口形式");
ws.GetRow(rowIndex + 7).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue(titleModel.JST_Name);
ws.GetRow(rowIndex + 7).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 15, 18);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(15).SetCellValue("耦合剂");
ws.GetRow(rowIndex + 7).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 19, 23);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(19).SetCellValue(titleModel.UT_CouplingAgent);
ws.GetRow(rowIndex + 7).GetCell(19).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 24, 26);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(24).SetCellValue("检测灵敏度");
ws.GetRow(rowIndex + 7).GetCell(24).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 27, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(27).SetCellValue(titleModel.UT_DetectionSensitivity);
ws.GetRow(rowIndex + 7).GetCell(27).CellStyle = titleStyle;
//行9
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("探头");
ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 4, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("试块");
ws.GetRow(rowIndex + 8).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 14, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(14).SetCellValue("检测面");
ws.GetRow(rowIndex + 8).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 17, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(17).SetCellValue("设备型号");
ws.GetRow(rowIndex + 8).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 22, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(22).SetCellValue("表面状态");
ws.GetRow(rowIndex + 8).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 26, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(26).SetCellValue("表面补偿");
ws.GetRow(rowIndex + 8).GetCell(26).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 8, rowIndex + 9, 29, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(29).SetCellValue("扫描比例");
ws.GetRow(rowIndex + 8).GetCell(29).CellStyle = titleStyle;
//行10
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("序号");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 1, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(1).SetCellValue("型号");
ws.GetRow(rowIndex + 9).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 4, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(4).SetCellValue("型号1");
ws.GetRow(rowIndex + 9).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 10, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(10).SetCellValue("型号2");
ws.GetRow(rowIndex + 9).GetCell(10).CellStyle = titleStyle;
//行11
ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue(1);
ws.GetRow(rowIndex + 10).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 1, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(1).SetCellValue(titleModel.UT_ProbeType);
ws.GetRow(rowIndex + 10).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 4, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(4).SetCellValue(titleModel.UT_StandardTestBlock);
ws.GetRow(rowIndex + 10).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 10, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(10).SetCellValue(titleModel.UT_StandardTestBlock2);
ws.GetRow(rowIndex + 10).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 14, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(14).SetCellValue(titleModel.UT_DetectionSurface);
ws.GetRow(rowIndex + 10).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 17, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(17).SetCellValue(titleModel.UT_EquipmentCode);
ws.GetRow(rowIndex + 10).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 22, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(22).SetCellValue(titleModel.UT_SurfaceState);
ws.GetRow(rowIndex + 10).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 26, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(26).SetCellValue(titleModel.UT_SurfaceCompensation);
ws.GetRow(rowIndex + 10).GetCell(26).CellStyle = titleStyle;
ws.GetRow(rowIndex + 10).GetCell(29).SetCellValue(titleModel.UT_ScanningRate);
ws.GetRow(rowIndex + 10).GetCell(29).CellStyle = titleStyle;
//行12
ws.GetRow(rowIndex + 11).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 1, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(1).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 4, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 10, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(10).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 14, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(14).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 17, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(17).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 22, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(22).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 26, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(26).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(26).CellStyle = titleStyle;
ws.GetRow(rowIndex + 11).GetCell(29).SetCellValue("");
ws.GetRow(rowIndex + 11).GetCell(29).CellStyle = titleStyle;
//行13
ws.GetRow(rowIndex + 12).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 1, 3);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(1).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 4, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(4).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(4).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 10, 13);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(10).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(10).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 14, 16);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(14).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(14).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 17, 21);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(17).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(17).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 22, 25);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(22).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(22).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 26, 28);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(26).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(26).CellStyle = titleStyle;
ws.GetRow(rowIndex + 12).GetCell(29).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(29).CellStyle = titleStyle;
rowIndex += 8;
}
//行14
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 5, rowIndex + 5, 0, 29);
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检测批号");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 5);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("焊缝编号");
ws.GetRow(rowIndex + 5).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 10);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("焊工号");
ws.GetRow(rowIndex + 5).GetCell(6).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 11, 14);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("焊缝规格");
ws.GetRow(rowIndex + 5).GetCell(11).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 15, 17);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(15).SetCellValue("探头序号");
ws.GetRow(rowIndex + 5).GetCell(15).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 18, 24);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(18).SetCellValue("缺陷情况或缺陷示意图编号");
ws.GetRow(rowIndex + 5).GetCell(18).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 25, 27);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(25).SetCellValue("评定级别");
ws.GetRow(rowIndex + 5).GetCell(25).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 28, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(28).SetCellValue("备注");
ws.GetRow(rowIndex + 5).GetCell(28).CellStyle = titleStyle;
#endregion
#region
var dataTit = rowIndex + 6;
var tIndex = i == 1 ? 27 : 37;
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, dataTit, rowIndex + tIndex, 0, 29);
//每页数据开始和结束条数
var dStart = 0;
var dEnd = 0;
if (i == 1)
{
dStart = 0;
dEnd = 22;
}
else
{
dStart = i == 2 ? 15 : ((i - 2) * 32) + 15;
dEnd = ((i - 1) * 32) + 15;
}
//合并单元格
for (int hb = rowIndex + 6; hb <= rowIndex + tIndex; hb++)
{
region = new CellRangeAddress(hb, hb, 0, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 3, 5);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 6, 10);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 11, 14);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 15, 17);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 18, 24);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 25, 27);
ws.AddMergedRegion(region);
region = new CellRangeAddress(hb, hb, 28, 29);
ws.AddMergedRegion(region);
}
//获取当前页数据
var pageTb = GetPageToTable(tb, dStart, dEnd);
//数据
for (int j = 0; j < pageTb.Rows.Count; j++)
{
int dataIndex = dataTit + j;
//检测批号
ws.GetRow(dataIndex).GetCell(0).SetCellValue(pageTb.Rows[j]["EntrustCode"].ToString());
//焊缝编号
ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[j]["WeldingCode"].ToString());
//焊工号
ws.GetRow(dataIndex).GetCell(6).SetCellValue(pageTb.Rows[j]["WED_Code"].ToString());
//焊缝规格
ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[j]["JointDesc"].ToString());
//探头序号
ws.GetRow(dataIndex).GetCell(12).SetCellValue("");
//缺陷情况或缺陷示意图编号
ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[j]["FilmNum"].ToString());
//评定级别
ws.GetRow(dataIndex).GetCell(19).SetCellValue(pageTb.Rows[j]["DefectResult"].ToString());
//备注
ws.GetRow(dataIndex).GetCell(24).SetCellValue(pageTb.Rows[j]["Remark"].ToString());
}
rowIndex = rowIndex + tIndex;
#endregion
#region
if (i == 1)
{
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleSZYLeftStyle, rowIndex + 1, rowIndex + 1, 0, 29);
//尾部行1
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检测人:");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("审核人:");
ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = titleSZYLeftStyle;
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(20).SetCellValue("检测单位:(公章)");
ws.GetRow(rowIndex + 1).GetCell(20).CellStyle = titleSZYLeftStyle;
//尾部行2
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleXZYLeftStyle, rowIndex + 2, rowIndex + 2, 0, 29);
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("资格: UT 级");
ws.GetRow(rowIndex + 2).GetCell(0).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 19);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("资格: UT 级");
ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = titleXZYLeftStyle;
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 20, 29);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("报告日期: 年 月 日");
ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = titleXZYLeftStyle;
rowIndex = rowIndex + 3;
}
else
{
rowIndex++;
}
#endregion
}
//ws.SetMargin(MarginType.LeftMargin, 0.3);
//ws.SetMargin(MarginType.RightMargin, 0.2);
//ws.SetMargin(MarginType.BottomMargin, 0.2);
//ws.SetMargin(MarginType.TopMargin, 0.2);
//ws.SetMargin(MarginType.FooterMargin, 0.3);
//ws.SetMargin(MarginType.HeaderMargin, 0.3);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("焊缝超声检测报告.xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
#endregion
}
}
#region
/// <summary>
/// 数据行和列
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd)
{
CellRangeAddress region;
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = 21.8f;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).GetCell(j).CellStyle = style;
}
}
return ws;
}
/// <summary>
/// 创建头部
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = height;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(j).CellStyle = style;
}
}
return ws;
}
/// <summary>
/// 查询指定条数分页
/// </summary>
/// <returns></returns>
public static DataTable GetPageToTable(DataTable dt, int StartNum, int EndNum)
{
//0页代表每页数据直接返回
if (EndNum == 0) return dt;
//数据源为空返回空DataTable
if (dt == null) return new DataTable();
DataTable newdt = dt.Copy();
newdt.Clear();//copy dt的框架
if (StartNum >= dt.Rows.Count)
return newdt;//源数据记录数小于等于要显示的记录直接返回dt
if (EndNum > dt.Rows.Count)
EndNum = dt.Rows.Count;
for (int i = StartNum; i <= EndNum - 1; i++)
{
DataRow newdr = newdt.NewRow();
DataRow dr = dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName] = dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}
return newdt;
}
#endregion
}
}