当前位置 > 首页 > Asp.net

Asp.net开发经验-利用Aspose.Words按模板导出Word

2012-7-21 19:05:00来源:Asp.net

    估计很多开发人员都为导出Excel或者Word烦扰吧..网上有各种各样的导出方法...经常用到的方法就是画网页..例如下面的GridView导出excel的代码..这段代码虽然有效..但是其实非常不好用..不仅不能改变Excel单元的大小..而且还有乱七八糟的排版问题..这篇文章说得是导出Word的..扯到Excel有点远了,但是主要说明的是导出方法千奇百怪..大家要选择一种好的有效的..不要盲目的做..到时候觉得不行的时候又要改。今天我和大家说得是Aspose组件,不仅可以导出Excel还能导出Word和其他不同格式的...好了进入正题.

System.Web.HttpContext.Current.Response.Clear();System.Web.HttpContext.Current.Response.Buffer = true;System.Web.HttpContext.Current.Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");System.Web.HttpContext.Current.Response.Write("<head>");System.Web.HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");//解决中文乱码问题,导出数据在20行内容易出现乱码System.Web.HttpContext.Current.Response.Write("<!--[if gte mso 9]><xml>");System.Web.HttpContext.Current.Response.Write("<x:ExcelWorkbook>");System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheets>");System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheet>");System.Web.HttpContext.Current.Response.Write("<x:Name>sheet1</x:Name>");System.Web.HttpContext.Current.Response.Write("<x:WorksheetOptions>");System.Web.HttpContext.Current.Response.Write("<x:Print>");System.Web.HttpContext.Current.Response.Write("<x:ValidPrinterInfo/>");System.Web.HttpContext.Current.Response.Write("</x:Print>");System.Web.HttpContext.Current.Response.Write("</x:WorksheetOptions>");System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheet>");System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheets>");System.Web.HttpContext.Current.Response.Write("</x:ExcelWorkbook>");System.Web.HttpContext.Current.Response.Write("</xml>");System.Web.HttpContext.Current.Response.Write("<![endif]--> ");

 

 我们要导出如下图样式的Word

首先我们来画模板..其实很简单的...模板就是下面这幅图.我来简单的介绍一下 <TableStart:All> 是表示从名为All的 DataTable 里面获取数据 <TableEnd:All>就是结束的位置,中间的<jylx>  <my> 之类的都是名为All这个的DataTable的列名.中间还有另外一个<TableStart:Item> <TableStart:Item> 同理这个是名为Item的DataTable 他们中间的<mc> <sl>就是Item这个表的列名。

上面介绍了怎么画模板,我突然忘了告诉大家如何插入那些标签了...其实很简单只要在Word里面插入域即可..如下图所示.

下面我来说说代码应该如何写,首先构造一个DataSet包含两个DataTable一个叫All 一个叫Item..添加代码大致如下,之后就是填充这2个DataTable即可

     private DataSet GetOneDs()        {            DataTable dt1 = new DataTable("All");            dt1.Columns.Add("jylx");                dt1.Columns.Add("my");            dt1.Columns.Add("mc");//            dt1.Columns.Add("mz");//            dt1.Columns.Add("mjz");//            //dt1.Columns.Add("mqt");//其他            dt1.Columns.Add("sjbm");//            dt1.Columns.Add("yqwcrq");//要求完成日期            dt1.Columns.Add("jyyj");//检验依据            dt1.Columns.Add("szq");//自取            dt1.Columns.Add("sdzwd");//电子文档            dt1.Columns.Add("sqt");//其它            dt1.Columns.Add("ztwz");//完整            dt1.Columns.Add("ztqx");//缺陷            dt1.Columns.Add("ztms");//描述            dt1.Columns.Add("sjbmfzr");//送检部门负责人    

  • CHOJ# 在线编译及评判系统(OnlineJudge)2.0 Beta2

    2009-6-6 12:33:00

    这一次发布的版本部署在了Azure上,如果想要本地部署,下载Beta1即可 Azure支持 完整沙箱禁止危险代码 Live Id 登录支持 编译时状

  • .NET精简框架“无法找到资源程序集”异常正解

    2007-1-26 19:42:00

    摘要: 阅读全文 Bob Li 2007-01-26 19:37 发表评论

  • 基于Web的仿WF工作流设计器

    2007-3-18 12:35:00

    微软的WF是个不错的工作流开发平台,相对于开源的工作流实现而言,它的设计器不可谓不漂亮(当然,也和我以前看到的连线式设计器大不一样),上个星期突然冒出个想法,能不能在Web页面上实现一个类似的工作流

  • 结合实例实习F#(三)--理解函数式语言中的函数

    2009-8-18 14:41:00

    摘要: 前两篇我主要说了些F#中基本的语法,今天我接着来说说函数,函数在函数式编程中起着非常重要的作用,可以夸张一点来说,如果你了解并能熟练应用函数,你就可以向别人说“我精通函数式编程了

  • 【STM32 .Net MF开发板学习-20】蓝牙遥控智能小车(手机模式)

    2010-11-12 13:03:00

    无论是用 WIfi 还是用 GPRS 遥控小车,目前都离不了 PC 这个中转站,并且 PC 还得借助 Zigbee 通道和小车通信,这就大大地增加了此遥控平台的构建代价。以前在研究 iRobot 机

  • c#写系统日志

    2007-3-26 23:48:00

    源文来自 http://www.113317.com/blog/article.asp?id=508 usingSystem; usingSystem.Collections.Generic;

  • Structured Discriminator Pattern

    2007-3-22 10:10:00

    摘要: 阅读全文 bobmazelin 2007-03-22 09:19 发表评论

  • 网站、数据库的衍变之路(六)

    2009-9-26 1:59:00

    摘要: 这种方式很像是面试投递简历,你把简历投递出去,你并不知道简历是哪个人处理的,而处理完后,回复给你的还是这个邮箱地址就行了。这个邮箱要是是很多人公用的,那么就和这里的原理一样了。 作者资料

  • A realistic log4net config

    2007-3-16 14:22:00

    Most log4net config file examples show the simplest case. Here is a more realistic example of a pro

  • Asp.net MVC3.0 入门指南 3.1视图 View

    2011-5-4 17:46:00

    添加一个视图 本节您将继续修改HelloWorldController类,使用视图模板去封装 简洁的HTML响应给客户端。 您将使用ASP.NET MVC 3引入的 Razor视图引擎