开源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下载获取,也可以直接利用NuGet获取。

Install-Package DocX

1.3 开发环境

用DocX需要.NET framework4.0和VS2010或更高版本。

2.DocX相关常用操作(持续更新中...)

2.1 创建word文档

DocX document = DocX.Create(@"docs\HelloWorld.docx")

2.2 加载word文档

DocX document = DocX.Load(@"docs\HelloWorld.docx")

2.3 书签相关操作

2.3.1 插入书签

var paragraph = document.InsertBookmark("firstBookmark");

2.3.2 根据书签名获取书签

如果知道一个书签的书签名,可以直接得到。

var b = document.Bookmarks["书签1"];

2.3.3 在书签中插入文字

document.Bookmarks["书签1"].SetText("Hello World!");

2.3.4 在书签中插入图片、表格

document.Bookmarks["书签2"].Paragraph.InsertPicture(@"pic.jpg");
document.Bookmarks["书签3"].Paragraph.InsertTableAfterSelf(t);//t是Table类型

2.4 分节符和分页符

2.4.1 分节符

document.InsertSectionPageBreak();//分节符

2.4.2 分页符

  Paragraph p = document.InsertParagraph();
  p.InsertPageBreakAfterSelf();//分页符

2.5 添加目录

 1  static void AddToc()
 2         {
 3             Console.WriteLine("\tAddToc()");
 4
 5             using (var document = DocX.Create(@"docs\Toc.docx"))
 6             {
 7                 document.InsertTableOfContents("目录", TableOfContentsSwitches.O | TableOfContentsSwitches.U | TableOfContentsSwitches.Z | TableOfContentsSwitches.H, "Heading2");
 8                 var h1 = document.InsertParagraph("Heading 1");
 9                 h1.StyleName = "Heading1";
10                 document.InsertParagraph("Some very interesting content here");
11                 var h2 = document.InsertParagraph("Heading 2");
12                 document.InsertSectionPageBreak();
13                 h2.StyleName = "Heading1";
14                 document.InsertParagraph("Some very interesting content here as well");
15                 var h3 = document.InsertParagraph("Heading 2.1");
16                 h3.StyleName = "Heading2";
17                 document.InsertParagraph("Not so very interesting....");
18
19                 document.Save();
20             }
21         }

2.6 插入图片

Image img = document.AddImage(@"pic.jpg");
Picture pic = img.CreatePicture();
Paragraph p1 = document.InsertParagraph();
p1.InsertPicture(pic);

2.7 操作表格

2.7.1 创建和插入表格

Table t = document.AddTable(3, 4);//三行四列

2.7.2 单元格合并

Table t = document.AddTable(3,4);
t.MergeCellsInColumn(0, 0, 1);//public void MergeCellsInColumn(int columnIndex, int startRow, int endRow);竖向合并
t.Rows[0].MergeCells(1, 2);//public void MergeCells(int startIndex, int endIndex);横向合并

注:合并单元格的时候注意,最好先竖向合并,再横向合并,以免报错,因为横向合并会改变列数。

3. 资源

开源网址:http://docx.codeplex.com/(里面的示例代码很适合初学者学习)

高质量博客推荐:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html#_label3

利用DocX操作word的开源小项目:https://github.com/hahahuahai/create-word-by-DocX

标签: DocX

时间: 2024-08-19 07:24:56

开源word操作组件DocX的记录的相关文章

DocX开源WORD操作组件的学习系列二

创建目录 效果图 static void AddToc() { Console.WriteLine("\tAddToc()"); using (var document = DocX.Create(@"docs\Toc2.docx")) { document.InsertTableOfContents("1 目录", TableOfContentsSwitches.O | TableOfContentsSwitches.U | TableOfCo

DocX开源WORD操作组件的学习系列三

替换文本 private static void ReplaceText() { Console.WriteLine("ReplaceText()"); File.Copy(@"docs\Lists.docx", @"docs\ReplaceText.docx", true); using (var document = DocX.Load(@"docs\ReplaceText.docx")) { //全局替换 documen

DocX开源WORD操作组件的学习系列四

插入表格 static void LargeTable() { Console.WriteLine("\tLargeTable()"); var _directoryWithFiles = "docs\\"; using (var output = File.Open(_directoryWithFiles + "LargeTable.docx", FileMode.Create)) { using (var doc = DocX.Create(

开源RabbitMQ操作组件

开源RabbitMQ操作组件 对于目前大多的.NET项目,其实使用的技术栈都是差不多,估计现在很少用控件开发项目的了,毕竟一大堆问题.对.NET的项目,目前比较适合的架构ASP.NET MVC,ASP.NET WebAPI,ORM(较多Dapper.NET或者其扩展,稍大一些的项目用EF等等),为了提高速度也会采用缓存(.NET自带的Memcache,或者Redis),请求较多的项目,使用Nginx做负载均衡和使用队列等等. 上面简单的介绍一下.NET的项目的技术架构,具体的技术根据具体的需求做

.Net开源Excel、Word操作组件-NPOI、EPPlus、DocX[转]

link: http://www.cnblogs.com/jacktang/p/4493760.html 一.NPOI 简介:NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2007 files very easily. 官网地址:https://github.com/tonyqus/npoihttp://npoi.codeplex.com/ 二.EPPlus 简介:E

.Net开源Excel、Word操作组件-NPOI、EPPlus、DocX

一.NPOI 简介: NPOI is the .NET version of POI Java project. With NPOI, you can read/write Office 2003/2007 files very easily. 官网地址: https://github.com/tonyqus/npoi http://npoi.codeplex.com/ 二.EPPlus 简介: EPPlus is a .net library that reads and writes Exc

老牌开源Office操作组件NPOI现已支持.NET Core

昨天在微信群里听到老牌Excel开发利器NPOI的作者瞿总说4.6.1版本的NPOI已经支持.NET Standard 2.0了,这也就意味着你可以在.NET Core中使用NPOI了. 作者:依乐祝 原文地址 :https://www.cnblogs.com/yilezhu/p/10269281.html 写在前面 曾经的.NET Framework时代就很喜欢使用这个组件来对Excel的进行操作,可是随着.NET Core时代的到来以及NPOI不支持.NET Core所以就找到了园子里的大神

简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ解析

对于目前大多的.NET项目,其实使用的技术栈都是差不多,估计现在很少用控件开发项目的了,毕竟一大堆问题.对.NET的项目,目前比较适合的架构ASP.NET MVC,ASP.NET WebAPI,ORM(较多Dapper.NET或者其扩展,稍大一些的项目用EF等等),为了提高速度也会采用缓存(.NET自带的Memcache,或者Redis),请求较多的项目,使用Nginx做负载均衡和使用队列等等. 上面简单的介绍一下.NET的项目的技术架构,具体的技术根据具体的需求做出选择.介绍到队列,很多人都会

开源组件DocX导出Word

1.使用Docx替换Word模板里书签里内容的一个方法 using Novacode; public class ExportWord { /// <summary> /// 导出word /// </summary> /// <param name="lBookMarks">书签数据源</param> /// <param name="sTemplatePath">导出Word模板文件</param