手机版

用Aspose在word文档中动态生成数据表的方法 的单词 NET在ASP.NET之下

时间:2021-10-23 来源:互联网 编辑:宝哥软件园 浏览:

00-1010最近的项目有一个要求:导出word文档,文档的格式不是固定的,用户可以随意调整。导出内容中数据表的列是动态的,比如需要导出姓名和性别,那么就要导出这两列的数据,文档导出后不做调整,导出后已经调整好了。看到这里,你可能会马上想到用模板导出!还有。NET自带这个组件:微软。Office.Interop.Word,暂时可以满足需求。但是,该组件也有局限性。比如客户端必须安装办公组件,编码复杂度高。最麻烦的需求是后面的一个——动态表列头!下面介绍如何使用Aspose。的单词。NET在word文档中动态生成数据表。2.文本Aspose。Words是Aspose的“家庭类库”之一。除此之外,还有很多其他强大的类库,比如Aspose.PDF(操作pdf文件的类库),Aspose。Flash(操作Flash文件的类库)、Aspose.report(操作报表的类库)等。有兴趣可以去官网调研。这些类库包含两种语言,一种是java,另一种是。NET。本文主要介绍Aspose。 NET. Aspose的单词。的单词。NET是如此强大,你可以使用它来生成word文档,而不需要安装办公组件。阿斯彭。Words支持DOC、DOCX、OOXML、RTF格式、HTML格式、OpenDocument格式、PDF格式等多种格式。从下图中,你可以了解到更多关于Aspose.Words的架构,我忘了提到这个类库是要收费的。在本文后面,我将为您提供破解版的下载地址。

在介绍如何动态生成表之前,让我们看看这个类库是如何根据模板生成值的。首先,我们创建一个word模板:template.doc在文档中要生成的数据处创建一个书签,如图: 所示。

正如您在这里看到的,我们主要通过BookMark作为动态数据源进行操作。我们来看看是如何实现的:复制代码如下: string tmppath=server . map path(' ~/template . doc ');文档文档=新文档(tmp path);//加载模板if(文档。范围。书签['名称']!=null) {书签标记=文档。范围。书签['名称'];马克。正文='张三公司';}医生。保存(' demo.doc ',SaveFormat。文档,保存类型。OpenInWord,Response);//另存为单据打开方便吗?好了,我们来看看如何在文章开头动态生成单词表。Aspose的操作。word文档对象中的单词。它有点类似于生成的表中的二维数组。记住“表中的列数由用户控制”的要求,所以我们需要在模板上定义一个带有表头的表,并绘制出你的数据表中可以显示的所有列标题,主要是考虑到用户可以减少自己显示列标题的需要。这里需要注意的是,书签和列标题的顺序不能颠倒,这可以从下面的代码中看到。如下所示:

灰色的部分就是书签了Aspose .话生成表格的原理就如同一个二维数组,也就是一个个单元格的去生成。我们来看看代码部分是如何实现的:复制代码代码如下: DocumentBuilder builder=新建DocumentBuilder(文档);数据表产品=这个GetData();//数据源int count=0;//记录要显示多少列for(var I=0;一、产品。列。计数;i ) { if (doc .系列。书签[产品第[一]栏。列名。trim()]!=null){ 0书签标记=文档。系列。书签[产品第[一]栏。列名。trim()];马克文本=计数;} }系统。集合收藏。泛型. Liststring(计数);for(var I=0;我数;i ) {建设者.MoveToCell(0,0,I,0);//移动单元格if(建设者.CurrentNode。NodeType==NodeType .BookmarkStart) { listcolumn .添加((生成器当前代码.作为书签开始)。名称);} }双倍宽度=构建器。单元格格式。宽度;//获取单元格宽度建筑商MoveToBookmark(' table ');//开始添加值for(var m=0;m产品。行。计数;m){ for(var I=0;我听专栏。计数;i ) {建设者.InsertCell();//添加一个单元格建筑商。单元格格式。边框。线条样式=线条样式。单身;建筑商。单元格格式。边框。颜色=系统。绘图。颜色。黑色;建筑商。单元格格式。宽度=宽度;建筑商单元格格式。垂直合并=Asfose .单词。表格。单元格合并。无;建筑商。写(产品行[m][列表列[I]].ToString());}建设者EndRow();}医生。范围。书签['表格']。Text=//清掉标示医生保存。文档,保存格式.文档,保存类型OpenInWord,第页。回应);我们来看看最后生成的效果

到这里我们这一部分的功能就已经全部完成了。也许这种方法并不是最好,如果朋友们有兴趣不妨研究研究,大家一起交流下。附:Aspose .NET 6.5的单词破解版下载地址

版权声明:用Aspose在word文档中动态生成数据表的方法 的单词 NET在ASP.NET之下是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。