1.帮助文档,这东西找了很久,而且它版本很旧,还是英文,W8.1系统上打不开

http://download.csdn.net/detail/zuofangyouyuan/7673573

2.开源网址:http://docx.codeplex.com/

每次见到导出WORD文档的那一堆代码就马上远离,但这回是逃不过了,做项目要用.在经历了各种C#搞WORD的类库之后,找到了这个DocX.虽然它没有实用的中文文档,但比起其它类库来有三个优点

1.引入方便 将DocX.dll引入到项目就行了

2.不需要搞各种帮助类库

3.采用操作XML的方式

由于没有找到实用的文档,只好做了很多试验,由于水平不高,也以也看不懂源码.目前只希望用它最简洁的方法实现要求.于是采取下述方法

1.WORD模板,就是建好一个WORD文档,将里面需要替换的内容做成标识.做标识有几种方法,域,变量,书签.都没去学,最后就用了替换字符串的经典办法.比如在打印名字的地方,放个$name,当然,要保证这名字唯一.

循环替换:如果遇到数量不定的地方怎么办呢,也可以放一个$value,然后再替换之后,再加上$value,循环退出前再删掉这个$value

表格:如果有表格(一定有的)怎么办呢,可以放一个表格头在那里.程序里找到这个表格的方法是doc.Tables[index],然后操作这个表格就行了.

还没有解决的地方:不知道怎么在程序中将输入点定位到我指定的变量处,目前的做法是,替换那个变量,然后再加内容,这时就会很那个变量处开始.

2.使用方法和XML操作一样

// 目标文件路径
string docName = "C:/work.docx";
// 建立文档(使用模板)
DocX doc = DocX.Load(docName);//也可以是流

3.实用的方法

  替换字符串:doc.ReplaceText("$name", "博客1");

  插入段落:doc.InsertParagraph("文字");

  表格合并单元格:

    Table tb=doc.Tables[0];// 表示文档里的第一个表格

    tb.MergeCellsInColumn(columnIndex,startrowIndex,endrowIndex);// 这个是在某一列上合并上下行在该列中的单元格

    tb.Rows[0].MergeCells(startcellIndex, endcellIndex);// 这是在某一行中,合并左右列在该行中的单元格

  段落的样式:

    Paragraph p=doc.InsertParagraph("文字");

    p.Font(new System.Drawing.FontFamily("微软雅黑"));
    p.FontSize(12);

    p.Alignment = Alignment.center;// 中间对齐

还有很多,目前1天就研究了这些东西.希望以后不再要研究.

C#导出Word文档开源组件DocX的更多相关文章

  1. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

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

    .NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word ...

  3. NPOI插件生成导出word文档

    因为之前没有接触NPOI过这个插件,所以几乎都是自己一边百度摸索一边学习. 这个插件对于Excel的数据导入和导出,可以说是很方便了, 但是对于导出word文档,可以说是很少的,百度了很多....也不 ...

  4. C# 导出word文档及批量导出word文档(1)

         这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...

  5. C# 导出word文档及批量导出word文档(4)

          接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...

  6. freemarker导出word文档——WordXML格式解析

    前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...

  7. 自动生成并导出word文档

    今天很荣幸又破解一现实难题:自动生成并导出word文档 先看页面效果: word效果: 代码: 先搭建struts2项目 创建action,并在struts.xml完成注册 <?xml vers ...

  8. Java 用Freemarker完美导出word文档(带图片)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  9. freemarker导出word文档

    使用freemarker导出word文档的过程 **************************************************************************** ...

随机推荐

  1. Windows I/O模型之一:Select模型

    1.概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock) 四种调用模式: 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果 ...

  2. MySQL - 建库、建表、查询

    本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程.mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行 ...

  3. POJ 2488 A Knight's Journey(DFS)

    A Knight's Journey Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 34633Accepted: 11815 De ...

  4. js判断字符串中的英文和汉字

    有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 方法一 正则表达式,test()方法返回true 或 ...

  5. Ext4 MVC CRUD操作

    项目目录结构如下: (1)index.html <!DOCTYPE html> <html> <head> <title>用户管理</title& ...

  6. Silverlight 结合ArcGis 在地图画面上显示名称+ 点选图层事件委派

    原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/10/72083.aspx 如下图,我希望我的滑鼠经过此标记的点时显示名称 其实简单 ...

  7. WIN下和LINUX动态库的区别

    **************************************************************************************************** ...

  8. 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo

    最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘. 3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.O ...

  9. C++对象模型浅析

    本文仅代表博主自己对C++内存对象模型的一点理解,如果文中有 理解偏差和不准确的地方,希望各位大大提出,我好及时改正. 本博文只对博主自己负责,不对任何人负责. 就如<深度探索C++对象模型&g ...

  10. [Oracle] Data Guard 系列(5) - 创建逻辑备库

    在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...