Asp.net通过模板(.dot)导出Word

需要引用Office的DLL,在附件中

贴上核心代码(转载):

Microsoft.Office.Interop.Word._Application appWord = new Microsoft.Office.Interop.Word.ApplicationClass();
        Microsoft.Office.Interop.Word._Document docFile = null;
        try
        {
            appWord.Visible = false;
            object objTrue = true;
            object objFalse = false;
            object objTemplate = Server.MapPath(@"dot//123.dot");//模板路径
            object objDocType = Microsoft.Office.Interop.Word.WdDocumentType.wdTypeDocument;
            docFile = appWord.Documents.Add(ref objTemplate, ref objFalse, ref objDocType, ref objTrue);
            //第一步生成word文档
            //定义书签变量
            object obDD_Name = "DD_Name";//姓 名
            object obDD_Sex = "DD_Sex";//性 别
            object obDD_Age = "DD_Age";//年龄
            object obDD_Birthday = "DD_Birthday"; //出生年月
            object obDD_Nation = "DD_Nation"; //民 族
            object obDD_Native = "DD_Native"; //籍 贯

            //第二步 读取数据,填充数据集
            //SqlDataReader dr = XXXXX;//读取出来的数据集
            //第三步 给书签赋值
            //给书签赋值
            docFile.Bookmarks.get_Item(ref obDD_Name).Range.Text = "姓 名"; //姓 名
            docFile.Bookmarks.get_Item(ref obDD_Sex).Range.Text = "性 别";
            docFile.Bookmarks.get_Item(ref obDD_Age).Range.Text = "年龄";

            //第四步 生成word
            DateTime dt = DateTime.Now;
            object filename = Server.MapPath("dot//") + "表" + dt.Ticks.ToString() + ".doc";
            object miss = System.Reflection.Missing.Value;
            docFile.SaveAs(ref filename, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
            object missingValue = Type.Missing;
            object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
            docFile.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
            appWord.Quit(ref miss, ref miss, ref miss);
            docFile = null;
            appWord = null;
        }
        catch (Exception ex)
        {
            //捕捉异常,如果出现异常则清空实例,退出word,同时释放资源
            string aa = e.ToString();
            object miss = System.Reflection.Missing.Value;
            object missingValue = Type.Missing;
            object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
            docFile.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
            appWord.Quit(ref miss, ref miss, ref miss);
            docFile = null;
            appWord = null;
            throw ex;
        }

  

服务端生成后,附加简单的流下载代码:

 1                 string fileName = "表.doc";//客户端保存的文件名
 2                 string filePath = Server.MapPath("~/Download//Word//Table1.doc");//路径
 3
 4                 //以字符流的形式下载文件
 5                 FileStream fs = new FileStream(filePath, FileMode.Open);
 6                 byte[] bytes = new byte[(int)fs.Length];
 7                 fs.Read(bytes, 0, bytes.Length);
 8                 fs.Close();
 9                 Response.ContentType = "application/octet-stream";
10                 //通知浏览器下载文件而不是打开
11                 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
12                 Response.BinaryWrite(bytes);
13                 Response.Flush();
14                 Response.End();

附上各个Office版本Dll库:

各个版本的microsoft.office.interop.word库.rar

Asp.net通过模板(.dot)导出Word

时间: 2024-11-05 20:46:02

Asp.net通过模板(.dot)导出Word的相关文章

使用ICSharpCode.SharpZipLib+Aspose模板批量导出Word

由于是Web端的项目,所以点击按钮之后直接从Aspose模板读取数据,然后在内存中操作,而不是下载到本地后再打包弄到内存中下载.废话不多说,直接上代码 1 public ActionResult ExportZip(int testid) 2 { 3 string strSavePath = Server.MapPath("~/WordTemplate/PersonalityTest.zip"); 4 //获取数据,用户可以根据自己的需求重新定义 5 var Tester = test

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

我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的博客介绍过几篇关于Aspose.Word控件和Aspose.Cell控件的使用操作,如下所示. <使用Aspose.Cell控件实现Excel高难度报表的生成(一)> <使用Aspose.Cell控件实现Excel高难度报表的生成(二)> <使用Aspose.Cell控件实现Ex

按照word/Excel模板导出word/excel

最近项目要实现下载打印的功能,想了想,用水晶报表实在是大材小用, 用office组件直接就可以实现这一功能. 引用类 using Microsoft.Office.Interop.Word; 建立两个实体类 一个是导出word需要替换内容的配置,一个是替换内容的实体 public class AgentInfoEntity     {                 private string comname; public string ComName         {          

C#第三方Aspose.Words.dll导出Word(书签模板)方式说明

项目有遇到需要导出Word,在别人写好的基础上去修改样式,导出后发现样式不正确不整齐,于是采用模板的方式重新导出 1.模板word文件的制作,本人用office2013,在设计好需要的整个表格之后,在你需要替换的位置"插入"--书签 并命名,此命名需要在程序中进行替换 将做好的模板word文件放在程序目录下 2.引用Aspose.Words.dll 3.新建类WordOpAp.cs 1 public class WordOpAp 2 { 3 4 static public object

使用Spire.Doc组件利用模板导出Word文档

以前一直是用Office的组件实现Word文档导出,但是让客户在服务器安装Office,涉及到版权:而且Office安装,包括权限配置也是比较麻烦. 现在流行使用第三方组件来实现对Office的操作,有NPOI,Spire等第三方组件.开始考虑的是NPOI,毕竟它在操作Excel方面还是很强大的:但是不知道是它本身没有,还是我没找到,无法实现利用Word模板的标签插入内容,纯靠代码去生成Word文档,排版是个大问题.最终找到了Spire.Doc组件,轻松实现! Spire的官网地址:https:

C#,WPF使用word模板导出word文档

使用word模板导出word文档,首先需要在word模板中插入书签: 根据创建的书签名和位置,将需要写入的内容插入到word文件中. 需要引用  Microsoft.Office.Interop.Word;在添加引用-程序集中搜索可以找到. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows; usin

ASP.NET导出word实例

ASP.NET导出word实例 最近遇到一个题目就是如何在asp.net中将数据导出到word中,由于数据是动态的,所以需要在后台拼出想要的的格式,翻遍了网页找出了一个比较满意的代码,感谢那位高手.代码如下: public void Download() { Random rd = new Random(); string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc"; /

C#将内容导出Word到指定模板

昨天做了下导入导出Excel文件,今天研究了下导出Word文件. 从网上找了半天才找到了一个能导出到指定模板的,在这里总结下. 导出模板原理就是利用的替换占位符. 我这里先建立好了一个模板, 接下来写代码进行导出, 前端就一段AJAX调用,这里我就不写了,直接上后端代码,看下面: /// <summary> /// 导出Word文件 /// </summary> /// <returns></returns> [HttpPost] public Action

poi导出word模板项目实例(一个文件)

在页面上填写值,然后导出到word模板中,并把页面上的值带到模板中,也就是导出word文档,提前有word 的模板形式, 1.jsp 页面   <table class="formTable"> <TR> <TD class="label">会议地点</TD> <TD class="content"> <INPUT id="meetingSite" type=&