Aspose.Words

摘要:
EventArgse){//MainAID=1049FileName.Text=DateTime.Now.ToString(“yyyyMMddhhmmss”)+“.docx”;stringDotFileName=Server.MapPath(“~dot”)+”测试报告模板.docx“;

https://www.cnblogs.com/weixing/p/7771332.html

https://www.cnblogs.com/weixing/category/844563.html

和Word相关

第一个文档的最后

Aspose.Words第1张

第二个文档的最后

Aspose.Words第2张

生成之后的文档

Aspose.Words第3张

Aspose.Words第4张

protected void Grid1ExportClick(object sender, EventArgs e)
{

//MainAID=1049
FileName.Text = DateTime.Now.ToString("yyyyMMddhhmmss") + ".docx";

//第一个模板
string SaveFilesPath = Server.MapPath(("~\UploadFiles\") + FileName.Text);
string DotFileName = Server.MapPath("~\dot\") + "检测报告模板.docx";

//第二个模板
string SavaFilesPath2 = Server.MapPath(("~\UploadFiles\") + FileName.Text);
string DotFileName2 = Server.MapPath("~\dot\") + "EquipTestItem.docx";
Novacode.DocX wordDoc2 = null;


Novacode.DocX wordDoc = null;//之前degug,wordDoc 是null的原因是因为没有初始化
int i = 0;

 

 


wordDoc = WordReportDocX.LoadTemplateDocument(DotFileName);//此句话是对wordDoc初始化
wordDoc2 = WordReportDocX.LoadTemplateDocument(DotFileName2);//第二个Word模板

 


//int i = 0;
List<dYWZCMainbyAID> list0 = Govaze.SQLServerDAL.Factory.getCHINADADAL().d_YWZC_dis_Main_ByAID(int.Parse(AID.Text), getUserName());
WordReportDocX.InsertText(wordDoc, "$Text1$", list0[0].SnID);//项目编号
WordReportDocX.InsertText(wordDoc, "$Text4$", Lab.Text);//实验室
WordReportDocX.InsertText(wordDoc, "$Text5$", null);//报告日期目前不知道是哪一个日期,所以赋值为空
WordReportDocX.InsertText(wordDoc, "$Text9$", list0[0].Text6);//样品送样方式
WordReportDocX.InsertText(wordDoc, "$Text10$", list0[0].SnID);//样品状态

//和样品有关的存储过程
XElement xl = new XElement("root", new XElement("Type", "MainSample")
, new XElement("AID", AID.Text)
, new XElement("UserName", getUserName())
);

DataTable dt = Govaze.SQLServerDAL.Factory.getDataXmlDAL().ProcDataTable(xl.ToString(), "d_YWZC_dis_Sample_ByMainAID");
WordReportDocX.InsertText(wordDoc, "$Text2$", dt.Rows[0]["Text1"].ToString());//样品名称
WordReportDocX.InsertText(wordDoc, "$Text3$", dt.Rows[0]["Text101"].ToString());//样品描述就是样品型号


//WordReportDocX.InsertText(wordDoc, "$Text5$", list0[0].SnID);
WordReportDocX.InsertText(wordDoc, "$Text6$", dt.Rows[0]["Num1"].ToString());//样品数量
WordReportDocX.InsertText(wordDoc, "$Text7$", dt.Rows[0]["SampleCode"].ToString()); //样品编号
WordReportDocX.InsertText(wordDoc, "$Text8$", dt.Rows[0]["DateTime1"].ToString());//接收日期

 

//和检测项目有关的存储过程
//DataTable dt3 = Govaze.SQLServerDAL.Factory.getDataXmlDAL().ProcDataTable("<root><Type>DisMainTestPrice</Type><MainAID>" + AID.Text + "</MainAID></root>", "DataXmlProject");
//WordReportDocX.InsertText(wordDoc2, "$Text11$", dt3.Rows[0]["BeginDate"].ToString() + "-" + dt3.Rows[0]["EndDate"].ToString());//检测日期
//WordReportDocX.InsertText(wordDoc2, "$Text12$", dt3.Rows[0]["TestItem"].ToString());//检测项目

 

//仪器仪表设备
XElement x1 = new XElement("root", new XElement("Type", "DisMainTestPrice"), new XElement("MainAID", AID.Text));
DataTable dt1 = Govaze.SQLServerDAL.Factory.getDataXmlDAL().ProcDataTable(x1.ToString(), "DataXmlProject");
int rowNumber = 2;
if (dt1.Rows.Count > 0)
{
  WordReportDocX.AddRow(wordDoc2,1,dt1.Rows.Count);
}

foreach (DataRow row1 in dt1.Rows)
{

  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 1, (rowNumber - 1).ToString());
  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 2, row1["EquipName"].ToString());
  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 3, row1["Manufacturer"].ToString());//厂家
  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 4, row1["EquipModel"].ToString());//型号
  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 5, row1["ManufactureSnID"].ToString());//编号
  WordReportDocX.InsertCell(wordDoc2, 1, rowNumber, 6, row1["ManufactureDate"].ToString().ToString());//有效日期
  rowNumber++;
}

 

//先把wordDoc2插入到wordDoc中
wordDoc.Paragraphs[wordDoc.Paragraphs.Count - 1].InsertPageBreakAfterSelf();
wordDoc.InsertDocument(wordDoc2);

 

// 保存wordDoc
wordDoc.SaveAs(SaveFilesPath);
//临时路径加载  把加粗的部分给删除点击导出按钮就不会报错了
//wordDocTmp = WordReportDocX.LoadTemplateDocument(SaveFilesPath);
//wordDocTmp.Paragraphs[wordDocTmp.Paragraphs.Count - 1].InsertPageBreakAfterSelf();
//wordDocTmp.InsertDocument(wordDoc);
//Document Doc = new Document(SaveFilesPath);
//DocumentBuilder builder = new DocumentBuilder(Doc);
//Doc.Save(SaveFilesPath, SaveFormat.Docx);
WindowWord.Hidden = false;
PageContext.RegisterStartupScript(WindowWord.GetHidePostBackReference());
return;

}

免责声明:文章转载自《Aspose.Words》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇socket 客户端和服务端思考uniapp将时间日期格式化的组件unidateformat的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mybatis传入多个参数

需要查阅本文的基本都是需要传入多个参数的,这里记住一句话:无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的,那么既然这样,当我们要传入多个参数时,何不直接给与map类型即可,然后mapper.xml通过#{map.key}来获取值即可,这个特别适合动态搜索,或者多个参数的查询,并且可以在mapper的xml语句中通过if判断来实现若为...

图片在 canvas 中的 选中/平移/缩放/旋转,包含了所有canvas的2D变化,让你认识到数学的重要性

1、介绍   canvas 已经出来好久了,相信大家多少都有接触。   如果你是前端页面开发/移动开发,那么你肯定会有做过图片上传处理,图片优化,以及图片合成,这些都是可以用 canvas 实现的。   如果你是做前端游戏开发的,可能会非常熟悉,或者说对几何和各种图形变化非常了解。   这里我介绍的是简单的、基本的,但是非常完全的一个 2d 的 canva...

迭代器和生成器

一、迭代 什么叫做迭代? 比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素,在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历就是迭代。 可是,Python 的 for 循环抽象程度要高于 Java 的 for 循环的,为什么这么说呢?因为...

hibernate必须知道的知识

Hibernate经典知识:   1、Hibernate工作原理及为什么要用?     1.       答:hibernate,通过对jdbc进行封装,对 java类和关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作. 1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 hibernate的性能非常好...

C# 对sharepoint 列表基本操纵

一、更新 using Microsoft.SharePoint; SPWeb site = SPControl.GetContextWeb(Context); SPListItemCollection items = site.Lists["ListName"].Items; SPListItem item = items.Add(); item["Fi...

Qt编写地图综合应用6-百度在线地图

一、前言 百度在线地图的应用老早就做过,后面经过不断的完善才到今天的这个程序,除了基本的可以载入地图并设置一些相关的属性以外,还增加了各种js函数直接异步加载数据比如动态添加点、矩形、圆形、行政区划等各种。当然最大的是增加了离线地图的支持,当年这个离线地图拖了很久很久才去做,最终还是搞定了。 在线地图没有太多的难点,搞一个简单的在线地图demo绝对是分分钟...