读写Word的组件DocX介绍与入门
本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html
开源Word读写组件DocX介绍与入门
阅读文件夹
本博客全部文章分类的总文件夹:http://www.cnblogs.com/asxinyu/p/4288836.html
本博客其它.NET开源项目文章文件夹:http://www.cnblogs.com/asxinyu/p/4329755.html
1.前言
读写Offic格式的文档,大家多少都实用到,可能方法也非常多,组件有非常多。
这里不去讨论其它方法的优劣,仅仅是向大家介绍一款开源的读写word文档的组件。读写Excel有NPOI,读写Word。那看看DocX吧。
DocX是一个以很直观简单的方式操作Word 2007/2010文件的轻量级.NET组件。
它的速度很快。并且不须要安装微软的Office软件。
在中国,免费并且小巧的WPS有足够的理由让许多用户放弃庞大的Office,那在实际软件开发过程中,这玩意就实用处了。遗憾是不支持2003,但总归是被淘汰的趋势,并且用WPS,也没有啥版本号的差别。
2.DocX的主要特点
DocX组件眼下的最新版本号是V1.0.0.12。主要特点有:
1.支持在文件里插入、删除和替代文本。支持全部的文本格式,如字体,下划线,高亮等。
2.支持插入图片、超链接、表格、页眉页脚以及自己定义属性等。
3.支持类似JQuery的链式写法,非常方便编程开发。
3.DocX入门样例
DocX中一个Word文档的主要对象有段落(Paragraph)、图像(Image)、表格(Table)、自己定义属性(CustomProperty)。
关于具体的使用和API接口,能够參考CHM文档。没有自己制作最新版的,我用的是上一个版本号,基本使用够了。有精力的能够自己去看源代码,自己制作一份。注意,无特殊注明,本文的绝大部分代码都来自V1.0.0.10版本号的帮助文档。新的11和12版本号好像没有添加大的新功能,仅仅是改动不少Bug,以及添加了案例和单元測试,至于没有介绍到的,能够自己去翻文档,大家能够去开源站点下载最新源代码。
3.1 新建与载入Doc文档
新建和载入Word文档的方法都在Docx类中,操作也非常easy,例如以下所看到的:

1 //新建一个Word文档。载入Load的方法和Create使用一样。
2 using (DocX document = DocX.Create(@"..\Test.docx"))
3 {
4 //加入一些基本对象。如段落等
5 document.Save();//保存
6 }

3.2 加入段落及控制格式
文本段落和格式控制是Word文档的最经常使用对象,DocX支持插入段落以及对段落格式进行非常全面的控制。以下一一举例。
插入段落的方法是DocX类的InsertParagraph方法,该方法有好几种用法。不仅能够控制插入的位置。还能够控制格式。

1 using (DocX document = DocX.Create(@"Test.docx"))
2 {
3 //首先创建1个格式对象
4 Formatting formatting = new Formatting();
5 formatting.Bold = true;
6 formatting.FontColor = Color.Red;
7 formatting.Size = 30;
8 //控制段落插入的位置
9 int index = document.Text.Length / 2;
10 //将文本插入到指定位置。并控制格式
11 document.InsertParagraph(index, "New text", false, formatting);
12 document.Save();//保存文档
13 }

注意。上面仅仅是插入段落。也能够单独定义1个段落对象Paragraph,然后在这个段落中插入表格,图像,以及操作自己定义属性。如以下的样例,当中比較具体介绍的对图像的操作:

1 using (DocX document = DocX.Create(@"Test.docx"))
2 {
3 //给文档新建1个段落对象
4 Paragraph p = document.InsertParagraph("Here is Picture 1", false);
5 //给文档加入1个图像
6 Novacode.Image img = document.AddImage(@"Image.jpg");
7 //将图像插入到段落后面
8 Picture pic = p.InsertPicture(img.Id, "Photo 31415", "A pie I baked.");
9 //选择图像,并改动图像尺寸
10 pic.Rotation = 30;
11 pic.Width = 400;
12 pic.Height = 300;
13 //设置图片形状,并水平翻转图片
14 pic.SetPictureShape(BasicShapes.cube);
15 pic.FlipHorizontal = true;
16 document.Save();//保存文档
17 }

格式控制Formatting类所有是属性。没有方法。有非常多控制格式的属性,直接进行设置就能够了。临时没有发现这个版本号支持样式,所以仅仅能定义1个全局格式来控制标题了。详细的格式控制能够去看该类的文档。
太多,不一一列举,基本使用上面的代码就能够说明了。
另外新版本号已经支持了添加超链接(Hyperlink)功能,使用非常easy,DocX的AddHyperlink方法直接完毕。
3.3 插入图像及图像控制
上面的样例事实上已经介绍了几种插入图片的方式。一种是在DocX对象中直接AddImage,另外就是在段落中插入。
当中3.2的样例已经非常具体介绍了图像的控制,比方改动尺寸,旋转等。更具体的设置在Picture类中。
3.4 插入表格及表格控制
表格是Word文档另外一个重点。在实际使用环境中,也是比例非常高的一个。先介绍下DocX中表格对象的结构:
1个表格对象Table有行。列组成。行列能够通过索引訪问。Table对象的基本单一是单元格(Cell),每个Row对象由多个Cell对象组成。Cell对象有一个默认的Paragraph对象。这样能够对这个Paragraph对象进行格式控制。从而控制单元格的格式。表格还能够设置相关属性,对齐,是否自适应表格大小等。Table对象的操作也非常灵活,能够插入和移除行,相同也能够插入和移除列。
DocX对象插入表格也有几种方式,能够直接用DocX对象的InsertTable方法,也能够在段落对象后面插入。同理也能够在Table对象前后插入段落对象。这与排版有关了。看1个综合的样例吧:
3.5 页眉页脚控制
页面和页脚的使用很类似。
支持三种类型,首页。奇数页和偶数页。
貌似还没有支持节。这里仅仅列举页脚的基本使用。

1 using (DocX document = DocX.Create(@"Test.docx"))
2 {
3 document.AddFooters();//加入全部的页脚
4 Footers footers = document.Footers; //获取该文档全部的页脚
5 //获取文档第一页的页脚
6 Footer first = footers.first;
7 //获取奇数页的页脚
8 Footer odd = footers.odd;
9 //获取偶数页的页脚
10 even = footers.even;
11 //设置不同页使用不同的页脚
12 document.DifferentFirstPage = true;
13 document.DifferentOddAndEvenPages = true;
14 //设置页脚的内容
15 Paragraph p = first.InsertParagraph();
16 p.Append("This is the first pages footer.");
17 document.Save(); //记得保存
18 }

3.6 自己定义属性支持
尽管还没实用DocX投入实际使用,但个人觉得对自己定义属性的支持是最强大的1个功能。不仅能够自己制作模版,还能够直接在DocX中新增自己定义属性。这样在导出大批量同样的格式的文档时就非常实用。比方打印成绩单,报表等等。因为本人从没有使用Word 2007及以上版本号。全部也从没有接触过这个自己定义属性功能。我的理解,类似一个“占位标”或”文本控件”,然后在开发的时候。能够给这些位置填充值,以批量生成一些文件。以下仅仅简单的介绍一个直接加入自己定义属性,并赋值的样例。高级一点的话,能够自己更加仔细的排版,这样就美观点。

1 using (DocX document = DocX.Load(@"C:\Example\Test.docx"))
2 {
3 //先定义一个自己定义属性
4 CustomProperty forename;
5 //先推断文档中是否存在该名称的自己定义属性
6 if (!document.CustomProperties.ContainsKey("forename"))
7 { //不存在则创建一个。并给其赋值"Cathal"
8 document.AddCustomProperty(new CustomProperty("forename", "Cathal"));
9 }
10 //获取这个自己定义属性,并打印出它的值
11 forename = document.CustomProperties["forename"];
12 Console.WriteLine(string.Format("Name: '{0}', Value: '{1}'\nPress any key...",
13 forename.Name, forename.Value));
14 document.Save();
15 }

读写Word的组件DocX介绍与入门的更多相关文章
- 开源Word读写组件DocX介绍与入门
来源:http://i.cnblogs.com/EditPosts.aspx?opt=1 读写Offic格式的文档,大家多少都有用到,可能方法也很多,组件有很多.这里不去讨论其他方法的优劣,只是向大家 ...
- 开源word操作组件DocX的记录
开源word操作组件DocX的记录 使用开源word操作组件DocX的记录 1.DocX简介 1.1 简介 DocX是一个在不需要安装word的情况下对word进行操作的开源轻量级.net组件,是由爱 ...
- 使用开源word操作组件DocX的记录
1.DocX简介 1.1 简介 DocX是一个在不需要安装word的情况下对word进行操作的开源轻量级.net组件,是由爱尔兰的一个叫Cathal Coffey的博士生开发出来的.DocX使得操作w ...
- C# 开源组件--Word操作组件DocX
使用模版生成简历 读写表格数据 合并单元格 工具源代码下载 学习使用 使用模版生成简历 下面将以一个简历实例来讲解DocX对表格的操作,先看看生成的效果 private static void Cre ...
- 开源Word读写组件DocX 的深入研究和问题总结
一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...
- Docx组件读写Word文档介绍
Docx介绍 官方原文:DocX is a .NET library that allows developers to manipulate Word 2007/2010/2013 files, i ...
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...
- [.NET] 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc
开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc [博主]反骨仔 [原文地址]http://www.cnblogs.com/li ...
随机推荐
- plc学习笔记
防抖编程代码备份 如果定时到了还未检测到下降沿,则认为信号有效.这一端程序主要是针对现场装料杯在输送过程中由于传送带原因,电眼时常产生无效停机信号,需要过滤,因此需要在电眼检测中添加防抖功能 2018 ...
- firefox + pentadactyl 实现纯绿色高效易扩展浏览器(同时实现修改默认状态栏样式)
这几天开始使用firefox+pentadactyl来搭建一个开源.可扩展.完全绿化的浏览器环境,以便随身带着使用,其中firefox的使用了24.0的长期支持版, 这边版本稳定, 快速, 兼容性好, ...
- QuickClip—界面原型设计
1.需不需要设置用户登录/注册页? QuickClip没有提供该项功能.因为本产品为单纯的移动端视频编辑软件,是一个工具类软件.而且移动端软件本就追求的是方便快捷.简单易用,本产品不需要标识使用者的身 ...
- Java运算符法则
JAVA运算符法则 运算符是一种特殊的符号,用于表示数据的运算,赋值和比较等: 算术运算符 正号+,负号-,加+,减-,乘*,除/,余或取模%,自增++,自减--,字符串相加+ 正号负号运算符代表运算 ...
- MongoDB 启动和关闭
重启命令 service mongodb restart 启动命令 mongod -f /data/tools/mongodb/config/config.conf 必须要带配置文件才能启动 关闭命令 ...
- Duboo学习-SPI
待补充 现将Dubbo-SPI相关源码流程图更新
- TWaver GIS在电信中的使用
GIS作为信息系统的重要组成部分,在电信行业中的应用由来已久.将GIS引入电信管理系统,GIS强大的功能就会得到充分的体现,GIS技术可以将各类电信信息系统以其特有的表现形有机整合在一起,并为真正做到 ...
- 在MONO Design中使用Flex3D
在项目开发组的努力下,HTML5 3D 的开发包变得越来越优秀,越来越健壮:基于HTML5 3D技术的MONO Design建模平台功能也变得越来越强大和完善,这个方便了很多使用我们HTML5 3D的 ...
- new实现
前言 本篇来分析new是怎么实现的, 使用c++进行在申请对象的时候用到new, 但是为什么申请对象要用到new, 而不能用malloc, 而有时申请数组的用new或者malloc似乎又都可以, 这里 ...
- 初识 MyBatis
框架技术 使用框架构建项目,当确定使用哪个技术框架后,就已经有了一个 “半成品”,然后在这个半成品上填上内容,完成任务需求. 框架技术的优点: (1)不用再考虑公共问题,框架已经帮我们做好了. (2) ...