| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 |
- using NPOI.XWPF.UserModel;
- using NPOI.OpenXmlFormats.Wordprocessing;
- using SHJX.Service.Model.Dao;
- using System;
- using System.IO;
- using System.Linq;
- using System.Data;
- using NPOI.SS.Util;
- using System.Collections.Generic;
- namespace SHJX.Service.Common.Extend
- {
- public class ExportWordByNPOI : NpoiWordParagraphTextStyle
- {
- public override void Write(List<EquipmentTask> tasks, string savePath)
- {
- string fileName = string.Format("GMSY_Result_by_{0}.docx", DateTime.Now.ToString("yyyyMMddHHmmss"), System.Text.Encoding.UTF8);
- if (!Directory.Exists(savePath))
- {
- Directory.CreateDirectory(savePath);
- }
- using var stream = new FileStream(Path.Combine(savePath, fileName), FileMode.Create, FileAccess.Write);
- //创建document文档对象对象实例
- XWPFDocument document = new XWPFDocument();
- CT_SectPr m_SectPr = new CT_SectPr(); //实例⼀个尺⼨类的实例
- m_SectPr.pgSz.w = 16838; //设置宽度(这⾥是⼀个ulong类型)
- m_SectPr.pgSz.h = 11906; //设置⾼度(这⾥是⼀个ulong类型)
- XWPFDocument doc = new XWPFDocument();
- document.Document.body.sectPr = m_SectPr; //设置页⾯的尺⼨
- #region Table Header
- //创建文档中的表格对象实例
- XWPFTable headTable = document.CreateTable(4, 4); //显示的行列数rows:4行,cols:4列
- headTable.Width = 5200;//总宽度
- headTable.SetColumnWidth(0, 1300); /* 设置列宽 */
- headTable.SetColumnWidth(1, 1100); /* 设置列宽 */
- headTable.SetColumnWidth(2, 1400); /* 设置列宽 */
- headTable.SetColumnWidth(3, 1400); /* 设置列宽 */
- //Table 表格第一行展示...后面的都是一样,只改变GetRow中的行数
- headTable.GetRow(0).MergeCells(0, 3);//合并3列
- headTable.GetRow(0).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, "水质高锰酸盐指数", ParagraphAlignment.CENTER, 24, true));
- //Table 表格第二行
- headTable.GetRow(1).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, "采样日期", ParagraphAlignment.CENTER, 24, true));
- headTable.GetRow(1).GetCell(1).SetParagraph(SetTableParagraph(document, headTable, string.Empty, ParagraphAlignment.CENTER, 24, false));
- headTable.GetRow(1).GetCell(2).SetParagraph(SetTableParagraph(document, headTable, "分析日期", ParagraphAlignment.CENTER, 24, true));
- headTable.GetRow(1).GetCell(3).SetParagraph(SetTableParagraph(document, headTable, string.Empty, ParagraphAlignment.CENTER, 24, false));
- //Table 表格第三行
- headTable.GetRow(2).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, "消解时间", ParagraphAlignment.CENTER, 24, true));
- headTable.GetRow(2).GetCell(1).SetParagraph(SetTableParagraph(document, headTable, string.Empty, ParagraphAlignment.CENTER, 24, false));
- headTable.GetRow(2).GetCell(2).SetParagraph(SetTableParagraph(document, headTable, "检查次数", ParagraphAlignment.CENTER, 24, true));
- headTable.GetRow(2).GetCell(3).SetParagraph(SetTableParagraph(document, headTable, string.Empty, ParagraphAlignment.CENTER, 24, false));
- headTable.GetRow(3).MergeCells(1, 3);//合并3列
- headTable.GetRow(3).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, "分析方法名称及依据", ParagraphAlignment.CENTER, 24, false));
- headTable.GetRow(3).GetCell(1).SetParagraph(SetTableParagraph(document, headTable, "《水质高锰酸盐指数的测定(GB 11892-89)》、《国家地表水环境质量监测网监测任务作业指导书(2017)》", ParagraphAlignment.LEFT, 10, false));
- #endregion
- #region 标定
- var acidTask = tasks.Where(item => item.TaskType.Equals(TaskTypeName.CALIBRATION_ZH) && item.AcidBaseProp.Equals(AcidBase.Acid)).ToList();
- double acidAvg = 0;
- var acid_k = CalculationResult.CalculateType(acidTask, (arg) => 10 / arg, ref acidAvg);
- var alkaliTask = tasks.Where(item => item.TaskType.Equals(TaskTypeName.CALIBRATION_ZH) && item.AcidBaseProp.Equals(AcidBase.Alkali)).ToList();
- double alkaliAvg = 0;
- var alkali_k = CalculationResult.CalculateType(alkaliTask, (arg) => 10 / arg, ref alkaliAvg);
- XWPFTable calibrationTable = document.CreateTable(2, 4);
- calibrationTable.Width = 5200;//总宽度
- calibrationTable.SetColumnWidth(0, 1300); /* 设置列宽 */
- calibrationTable.SetColumnWidth(1, 1100); /* 设置列宽 */
- calibrationTable.SetColumnWidth(2, 1400); /* 设置列宽 */
- calibrationTable.SetColumnWidth(3, 1400); /* 设置列宽 */
- calibrationTable.GetRow(0).MergeCells(0, 3);//合并3列
- calibrationTable.GetRow(0).GetCell(0).SetParagraph(SetTableParagraph(document, calibrationTable, "标定", ParagraphAlignment.CENTER, 24, true));
- calibrationTable.GetRow(1).MergeCells(1, 2);//合并3列
- calibrationTable.GetRow(1).GetCell(0).SetParagraph(SetTableParagraph(document, calibrationTable, "草酸钠标液浓度", ParagraphAlignment.CENTER, 24, true));
- calibrationTable.GetRow(1).GetCell(1).SetParagraph(SetTableParagraph(document, calibrationTable, "标定高锰酸钾体积V2(ml)", ParagraphAlignment.CENTER, 24, true));
- calibrationTable.GetRow(1).GetCell(2).SetParagraph(SetTableParagraph(document, calibrationTable, "K=10/v2", ParagraphAlignment.CENTER, 24, true));
- CT_Row nr = new CT_Row();
- XWPFTableRow mr = new XWPFTableRow(nr, calibrationTable);//创建行
- calibrationTable.AddRow(mr);//将行添加到table中
- XWPFTableCell c1 = mr.CreateCell();//创建单元格
- CT_Tc ct = c1.GetCTTc();
- CT_TcPr cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = " 0.01mol/l";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = "酸性法";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = $"{acidAvg:F2}";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = $"{acid_k:F2}";
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, calibrationTable);
- calibrationTable.AddRow(mr);
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行 序号
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = "碱性法";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = $"{alkaliAvg:F2}";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = $"{alkali_k:F2}";
- #endregion
- #region Sample Head
- XWPFTable sampleHeadTable = document.CreateTable(1, 7);
- sampleHeadTable.Width = 5180;//总宽度
- for (int i = 0; i < 7; i++)
- {
- sampleHeadTable.SetColumnWidth(i, 740); /* 设置列宽 */
- }
- sampleHeadTable.GetRow(0).MergeCells(0, 6);//合并3列
- sampleHeadTable.GetRow(0).GetCell(0).SetParagraph(SetTableParagraph(document, sampleHeadTable, "水样测试", ParagraphAlignment.CENTER, 24, true));
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, calibrationTable);//创建行
- sampleHeadTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "序号";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "样品编号";
- string[] title = new string[] { "测定", "取样", "稀释", "高锰酸钾溶液" };
- foreach (var item in title)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = item;
- }
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = "样品浓度(mg/L)";
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, sampleHeadTable);
- sampleHeadTable.AddRow(mr);
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行 序号
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行 序号
- title = new string[] { "方法", "体积(ml)", "倍数", "消耗量(ml)" };
- foreach (var item in title)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;//单元格内容居中显示
- ct.GetPList()[0].AddNewR().AddNewT().Value = item;
- }
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行 序号
- #endregion
- #region Sample Content
- List<EquipmentTask> blankTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.BLANK_ZH)).ToList();
- List<EquipmentTask> sampleTasks = tasks.Where(item => item.TaskType.Equals(TaskTypeName.SAMPLE_ZH)).ToList();
- int sampleCount = blankTasks.Count + sampleTasks.Count;
- XWPFTable sampleContentTable = document.CreateTable(sampleCount, 7);
- sampleContentTable.Width = 5180;//总宽度
- for (int i = 0; i < 7; i++)
- {
- sampleContentTable.SetColumnWidth(i, 740); /* 设置列宽 */
- }
- int index = 0;
- foreach (var item in blankTasks)
- {
- sampleContentTable.GetRow(index).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, $"{index}", ParagraphAlignment.CENTER, 24, true));
- sampleContentTable.GetRow(index).GetCell(1).SetParagraph(SetTableParagraph(document, headTable, item.TaskType, ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(2).SetParagraph(SetTableParagraph(document, headTable, item.AcidBaseProp.Equals(AcidBase.Acid) ? "酸性法" : "碱性法", ParagraphAlignment.CENTER, 24, true));
- sampleContentTable.GetRow(index).GetCell(3).SetParagraph(SetTableParagraph(document, headTable, $"{item.SampleVolume:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(4).SetParagraph(SetTableParagraph(document, headTable, $"{item.SampleMultiple:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(5).SetParagraph(SetTableParagraph(document, headTable, $"{item.Amount:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(6).SetParagraph(SetTableParagraph(document, headTable, $"{item.Result:F2}", ParagraphAlignment.CENTER, 24, false));
- index++;
- }
- foreach (var item in sampleTasks)
- {
- sampleContentTable.GetRow(index).GetCell(0).SetParagraph(SetTableParagraph(document, headTable, $"{index}", ParagraphAlignment.CENTER, 24, true));
- sampleContentTable.GetRow(index).GetCell(1).SetParagraph(SetTableParagraph(document, headTable, item.TaskType, ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(2).SetParagraph(SetTableParagraph(document, headTable, item.AcidBaseProp.Equals(AcidBase.Acid) ? "酸性法" : "碱性法", ParagraphAlignment.CENTER, 24, true));
- sampleContentTable.GetRow(index).GetCell(3).SetParagraph(SetTableParagraph(document, headTable, $"{item.SampleVolume:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(4).SetParagraph(SetTableParagraph(document, headTable, $"{item.SampleMultiple:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(5).SetParagraph(SetTableParagraph(document, headTable, $"{item.Amount:F2}", ParagraphAlignment.CENTER, 24, false));
- sampleContentTable.GetRow(index).GetCell(6).SetParagraph(SetTableParagraph(document, headTable, $"{item.Result:F2}", ParagraphAlignment.CENTER, 24, false));
- index++;
- }
- #endregion
- #region Table Footer
- XWPFTable footTable = document.CreateTable(1, 7);
- footTable.Width = 5180;//总宽度
- for (int i = 0; i < 7; i++)
- {
- footTable.SetColumnWidth(i, 740); /* 设置列宽 */
- }
- footTable.RemoveRow(0);
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "准确度";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "质控样品编号";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "真值(mg/l)";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "测试含量(mg/l)";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "是否合格";
- for (int i = 0; i < 2; i++)
- {
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- for (int j = 0; j < 4; j++)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- }
- }
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.restart;//合并行
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "精密度";
- for (int i = 0; i < 2; i++)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "平行样编号";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- }
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行
- for (int i = 0; i < 2; i++)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "测试含量(mg/l)";
- for (int j = 0; j < 2; j++)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- }
- }
- title = new string[] { "均值", "相对偏差(%)" };
- foreach (var item in title)
- {
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVMerge().val = ST_Merge.@continue;//合并行
- for (int i = 0; i < 2; i++)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = item;
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- }
- }
- nr = new CT_Row();
- mr = new XWPFTableRow(nr, footTable);//创建行
- footTable.AddRow(mr);//将行添加到table中
- title = new string[] { "分析人", "校准人" };
- foreach (var item in title)
- {
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = item;
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- }
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- ct.GetPList()[0].AddNewR().AddNewT().Value = "审核人";
- c1 = mr.CreateCell();//创建单元格
- ct = c1.GetCTTc();
- cp = ct.AddNewTcPr();
- cp.gridSpan = new CT_DecimalNumber();
- cp.gridSpan.val = Convert.ToString(2); //合并列
- cp.AddNewVAlign().val = ST_VerticalJc.center;//垂直
- ct.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center;
- #endregion
- document.Write(stream);
- }
- }
- }
|