开源组件DocX导出Word

1、使用Docx替换Word模板里书签里内容的一个方法

using Novacode;

public class ExportWord
    {
        /// <summary>
        /// 导出word
        /// </summary>
        /// <param name="lBookMarks">书签数据源</param>
        /// <param name="sTemplatePath">导出Word模板文件</param>
        /// <param name="sFileName">导出文件名</param>
        public static void ToDocx(IEnumerable<BookMarks> lBookMarks, string sTemplatePath, string sFileName)
        {
            using (DocX document = DocX.Load(sTemplatePath))
            {
                List<Bookmark> booklist = new List<Bookmark>();
                foreach (Paragraph p in document.Paragraphs)
                {
                    booklist.AddRange(p.GetBookmarks());
                }

                foreach (BookMarks m in lBookMarks)
                {
                    foreach (Bookmark b in booklist)
                    {
                        if (b.Name == m.Name)
                        {
                            b.Paragraph.ReplaceText(b.Paragraph.Text, m.Text);
                        }
                    }
                }

                HttpContext.Current.Response.ContentType = "application/octet-stream";

                string mybrowser = System.Web.HttpContext.Current.Request.Browser.Browser;
                if (mybrowser.ToLower().IndexOf("firefox") > -1)//火狐浏览器
                {
                    HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.docx", sFileName));
                }
                else
                {
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8) + ".docx\"");
                }

                HttpContext.Current.Response.Clear();

                document.SaveAs(HttpContext.Current.Response.OutputStream);
                HttpContext.Current.Response.End();

            }

        }
    }

2、书签类

public class BookMarks
    {
        /// <summary>
        /// 书签Name
        /// </summary>
        public string Name
        {
            get;
            set;
        }

        /// <summary>
        /// 书签文本
        /// </summary>
        public string Text
        {
            get;
            set;
        }

    }

3、使用示例

public void ExportTest()
        {
            List<BookMarks> bList = new List<BookMarks>();

            BookMarks b = new BookMarks();
            b.Name = "Title";
            b.Text = "DocX导出Word Test";
            bList.Add(b);

            b = new BookMarks();
            b.Name = "Content";
            b.Text = "Word正文";
            bList.Add(b);

            ExportWord.ToDocx(bList, @"E:\Template.docx", "test");

        }

开源组件DocX导出Word

时间: 2024-10-09 20:26:00

开源组件DocX导出Word的相关文章

C#开源组件DocX处理Word文档基本操作(二)

上一篇 C#开源组件DocX处理Word文档基本操作(一) 介绍了DocX的段落.表格及图片的处理,本篇介绍页眉页脚的处理. 示例代码所用DocX版本为:1.3.0.0.关于版本的情况,请参见上篇. 代码如下: 第一部分:基本的页眉页脚处理(包括图片插入) private void DocXSetHeaderFooter(DocX document) { document.AddHeaders(); //增加页眉 document.AddFooters(); //增加页脚 document.Di

【c#搬砖记】用Docx导出word格式的docx文件

DocX开源网址:http://docx.codeplex.com/ 1.引入DocX.dll 调用ReplaceText()方法替换模板中的字符.只支持docx格式的word文档 using (DocX docx = DocX.Load(fileDemo)) { docx.ReplaceText("@某某某", tester.name); docx.ReplaceText("@110101198101010001", tester.IdCode); docx.Sa

.net使用AsposeWord导出word table表格

本文为原创,转载请注明出处 1.前言 .net平台下导出word文件还可以使用Microsoft.Office.Interop和NPOI,但是这两者都有缺点,微软的Office.Interop组件需要程序运行的主机上安装office,至于NPOI,由于长期无人维护,BUG众多,各种对象和属性名的命名也十分混乱,不易读懂,在使用上带来一定的难度,因此为了规避这两者的缺点,目前最佳的选择是使用AsposeWord这个组件来导出word文件. 2.说明 下面是使用AsposeWord导出word表格的

开源word操作组件DocX的记录

开源word操作组件DocX的记录 使用开源word操作组件DocX的记录 1.DocX简介 1.1 简介 DocX是一个在不需要安装word的情况下对word进行操作的开源轻量级.net组件,是由爱尔兰的一个叫Cathal Coffey的博士生开发出来的.DocX使得操作word非常轻便,有利于减轻开发负担,提升程序效率.DocX在Codeplex和Github上都有开源. 1.2 获取与安装 可以在http://docx.codeplex.com/releases下载获取,也可以直接利用Nu

.NET通过调用Office组件导出Word文档

.NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word模板中,再反馈给客户端下载. 实现思路如下: 利用微软提供的Office的组件来完成,在服务器端指定目录放置一个word模板(该模板中需要替换的数据信息用书签标记好),当请求过来的时候,读取模板信息并将书签内容替换成从数据库获得的信息在返回给客户端下载即可,代码如下: #region 根据申请单ID号和模板生

asp.net 导出word格式的数据,检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败 错误: 80070005

asp.net 导出word格式的数据,检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败 错误: 80070005 以下是该问题修改方案: 一.在 计算机——> 控制面板——> 管理工具——> 组件服务 下(或者 开始——>运行 ——>dcomcnfg.exe ) 二. 计算机——> 我的电脑——>DCOM配置 找到Microsoft Word  文档(该名称不同的机器有可能不同)

NPOI 2.0导出word(docx格式)

大名鼎鼎的NPOI用来导出EXCEL的文章园子里面有很多,可是用来导出WORD文档的文章大都含糊不清,最近刚好完成一个导出WORD文档的需求,在此分享下. NPOI里面认为word文档的最基本的结构是段落,代表这个段落的类就是XWPFParagraph,使用这个类可以设置段落里面的字体.大小.以及是否加粗等. 代表整个文档的的类XWPFDocument,是最外层的容器相当于一个word文档的实例,代表表格的类XWPFTable,是较小级别的段落容器相当于一个表格的实例. 一个XWPFDocume

利用Aspose.Words.dll导出Word代替NPOI

许久没来写博客了,已至于登录博客园的密码都忘却了. 时间过的真快,最近再做一个招聘管理系统,其中用到了导出Word文档的功能,尝试了各种方法,遇到了各种问题.不过最后还是解决了导出Word的问题. 一.针对导出Word文档的功能,采用的几个方案: 1.预置好Word文档模板,采用加载替换文档内容标签的方式实现.    采用这种方案可以借助两个第三方组件来实现,分别如下: (1).借助Microsoft.Office.Interop.Word组件实现.  (2).借助NPOI实现.  (3).借助

poi导出word、excel

在实际的项目开发中,经常会有一些涉及到导入导出的文档的功能.apache开源项目之一poi对此有很好的支持,对之前的使用做一些简要的总结. 1,导入jar 为了保证对格式的兼容性,在项目的pom.xml添加这三个jar: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> &l