我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现。

我的博客介绍过几篇关于Aspose.Word控件和Aspose.Cell控件的使用操作,如下所示。

《使用Aspose.Cell控件实现Excel高难度报表的生成(一)》

《使用Aspose.Cell控件实现Excel高难度报表的生成(二)》

《使用Aspose.Cell控件实现Excel高难度报表的生成(三)》

《使用Aspose.Cell控件实现多个Excel文件的合并》

以及关于Word的操作的《利用Aspose.Word控件实现Word文档的操作》

这些都是我本人的总结,是实实在在的从项目中来,到博客中去的经验总结,本篇主要介绍在Web的模板化文档输出中,Aspose.Word控件和Aspose.Cell控件的使用操作。

1、Word模板化的文档导出

模板化的输出,首先是在预定义好固定的模板,然后绑定数据源或者替换相关的文字实现模板化文档的导出操作。

在Aspose.Word的操作对象中,我们可以使用文本替换的方式实现模板内容的修改,简单的操作如下所示。

Document doc = new Document(MyDir + "Document.doc");
doc.Range.Replace("wuhuacong", "伍华聪", false, true);

也可以以书签引用替换的方式实现,首先要定义好相应的标签引用,操作如下。

在一个Word文档中某固定位置插入一个标签引用,在Word(2007、2010)的【插入】-【书签】中插入指定位置的书签引用,如下所示。

替换标签内容的代码如下所示。

Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks["ACCUSER_SEX"];if (bookmark != null){bookmark.Text = "男";}

为了较好展示操作效果,我们先来固定一个Word的模板文档,如下所示。

实现模板化的文档导出,我这里结合两种方式实现内容的替换操作,一个是使用文字替换,一个是使用标签引用,两部分的代码如下所示。

        protected void btnGenWord_Click(object sender, EventArgs e){Dictionary<string, string> dictSource = new Dictionary<string, string>();dictSource.Add("TIS_HANDLE_NO", "T0001");dictSource.Add("ACCUSE_INDUSTRY", "出租车");dictSource.Add("ACCUSER_NAME", "张三");string templateFile = Server.MapPath("./Templates/Advice.doc");Aspose.Words.Document doc = new Aspose.Words.Document(templateFile);//使用文本方式替换foreach (string name in dictSource.Keys){                doc.Range.Replace(name, dictSource[name], true, true);}#region 使用书签替换模式Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks["ACCUSER_SEX"];if (bookmark != null){bookmark.Text = "男";}bookmark = doc.Range.Bookmarks["ACCUSER_TEL"];if (bookmark != null){bookmark.Text = "1862029207*";} #endregiondoc.Save(Response, "testAdvice.doc", Aspose.Words.ContentDisposition.Attachment,Aspose.Words.Saving.SaveOptions.CreateSaveOptions(Aspose.Words.SaveFormat.Doc));}

基于Asp.NET的界面如下所示。

生成的模板化文档如下所示,整个文档是基于固定模板输出,因此比较标准和统一化。

2、Aspose.Cell模板化的文档导出

Aspose.Cell的模板化文档也是类似,也有两种方式可以操作,一种是替换文本,一种是绑定数据源的方式实现,具体可以参考一下我前面的列出随笔,对于Apsose.Cell来说,绑定数据源的功能非常强大。

绑定数据源是通过在模板中设置变量对象方式,变量对象是通过&=来引用,对象的属性或者列名,通过如&=Customer.City方式引用,非常直观方便。

这种方式的变量对象支持简单对象,如下所示。

也支持复杂的集合对象,如下所示。

为了演示模板化的文档导出,我这里设计了一个固定的Excel模板,通过两种方式实现数据的替换,先定义Excel模板如下所示。

后台绑定数据的代码如下所示。

        protected void btnGenExcel_Click(object sender, EventArgs e){Dictionary<string, string> dictSource = new Dictionary<string, string>();dictSource.Add("TIS_HANDLE_NO", "T0001");dictSource.Add("ACCUSE_INDUSTRY", "出租车");dictSource.Add("ACCUSER_NAME", "张三");string templateFile = Server.MapPath("./Templates/Advice.xls");WorkbookDesigner designer = new WorkbookDesigner();designer.Open(templateFile);Aspose.Cells.Worksheet worksheet = designer.Workbook.Worksheets[0];//使用文本替换foreach (string name in dictSource.Keys){                worksheet.Replace(name, dictSource[name]);}//使用绑定数据方式替换designer.SetDataSource("ACCUSER_SEX", "男");designer.SetDataSource("ACCUSER_TEL", "1862029207*");designer.Process();designer.Save("testAdvice.xls", SaveType.OpenInExcel, FileFormatType.Excel2003, Response);}

以上就是使用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出的相关操作过程及代码,希望对大家有帮助,也作为我的一个总结,以后参考,呵呵,欢迎互相沟通研究。

转载于:https://www.cnblogs.com/BrokenIce/p/5994973.html

利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出相关推荐

  1. 在word文档中插入外部对象(例如插入另一个外部word文档或excel文档)

    一.插入外部文件 例如插入外部word文档: 插入--对象--对象--由文件创建--选择文件,勾选链接到文件.显示为图标. 确定即可. 二.插入外部flv文件 第1步 首先打开一个WORD文件,点击& ...

  2. JAVA使用POI导出Word文档和Excel文档

    导包 注意:POI包的版本,不同版本poi导出API会有差别!!!! <dependency><groupId>org.apache.poi</groupId>&l ...

  3. [办公软件] Word文档和Excel文档的桌面图标有把锁怎么解决?

    转载请说明来源于"厦门SEO" 本文地址:http://www.96096.cc/Article/160875.html 办公软件 我们平常使用office办公的时候,经常会将Ex ...

  4. 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?

    概要:「我的ABC软件工具箱」提供了删除空白页的功能,轻轻松松就可以实现批量删除文档中的空白页.目前支持 Word.PDF.PPT 以及 Excel 等格式文件文件.操作非常的方便,处理也非常高效! ...

  5. 使用Aspose.Cell控件实现Excel高难度报表的生成(三)

    在之前几篇文章中,介绍了关于Apsose.cell这个强大的Excel操作控件的使用,相关文章如下: 使用Aspose.Cell控件实现Excel高难度报表的生成(一) 使用Aspose.Cell控件 ...

  6. Word处理控件Aspose.Words功能演示:使用 Python 查找和替换 Word 文档中的文本

    很多时候,您需要替换 Word 文档中的特定文本或短语.MS Word 具有针对此类情况的内置功能,您可以一键替换所需的文本.在本文中,您将学习如何使用 Python 以编程方式查找和替换 Word ...

  7. Word/Excel文档操作API哪家强?一张表带你了解Aspose和Spire系列全功能对比

    Microsoft Office是微软公司的一个文字处理器应用程序,作为办公软件必不可少的神器之一,其中Word.Excel是日常工作中常用的文档管理工具.目前,Aspose系列和Spire系列是文档 ...

  8. 动态生成word文档原来如此简单!Aspose.Words助力以Java编程方式创建丰富的Word文档

    近年来,Word文档的动态生成已成为组成报告,报价,发票和其他类型文档的流行功能.各种制造公司都基于数据库中存储的数据生成发票.在这种情况下,文档自动化可以节省手动文档创建过程中所需的时间,精力和资源 ...

  9. [转]利用ASP.NET 2.0创建自定义Web控件(1)

    原址:http://hi.baidu.com/sjbh/blog/item/cc58fd1bd35d3ad2ad6e7593.html   简介 从使用基本的文本编辑器到创作标记页面,Web 开发已经 ...

最新文章

  1. 会话管理隐患与防御 总结
  2. oracle 日期改字符格式_oracle怎么把数值型日期转换成日期字符型
  3. 云计算市场竞争激烈 亚马逊微软IBM阿里业绩亮眼
  4. SAP BW查看数据源提取方法
  5. 电脑新安装JDK版本并运行使用该JDK版本问题
  6. 游戏CFHD,狙可不是随便就起的,狙击的作用是辅助
  7. 跟踪源码运行流程---SpringMVC学习笔记(四)
  8. lwip连续发数据卡死_Mysteel:12月全球铁矿石发运量稳中微增 进口矿咋走?
  9. CentOS 5.5搭建Apache+PHP5.2x+MySQL5+Zend3(yum安装)
  10. 【定时器/中断/PWM】利用一个定时器实现一路PWM波的输出---点亮LED
  11. 警惕!有“庄家”“大V”联合诱骗投资者,忽悠式荐股
  12. EXP-00011: XX.tab does not exist
  13. @property的相关属性
  14. Spring解析@ComponentScan注解的执行流程
  15. 打开文件管理器_【教程】模组管理器3.1食用指南
  16. 局域网共享工具_局域网共享精灵 V1.0局域网便携共享文件+打印机——墨涩网
  17. ROS语音交互系统_(2)利用讯飞TTS实现ROS下语音合成播报
  18. Tecplot新手进阶--使用tecplot宏操作批量处理数据输出图片(详细步骤)
  19. 电脑桌面文件删除了怎么找回?
  20. c++中关于双循环跳出的小tips

热门文章

  1. hihocoder 网络流二·最大流最小割定理
  2. node_modules
  3. POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)
  4. 《白发魔女传》里面的一首诗
  5. delphi编程模拟发送QQ2008消息!
  6. 功能测试工作的一点总结
  7. 保证相同类型的MDI子窗体只会被打开一次的方法
  8. C#基础概念二十五问
  9. 物理、线性、虚拟、逻辑、有效地址
  10. 纪中2016.8.13比赛不明总结