使用开源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 添加目录
static void AddToc()
{
Console.WriteLine("\tAddToc()"); using (var document = DocX.Create(@"docs\Toc.docx"))
{
document.InsertTableOfContents("目录", TableOfContentsSwitches.O | TableOfContentsSwitches.U | TableOfContentsSwitches.Z | TableOfContentsSwitches.H, "Heading2");
var h1 = document.InsertParagraph("Heading 1");
h1.StyleName = "Heading1";
document.InsertParagraph("Some very interesting content here");
var h2 = document.InsertParagraph("Heading 2");
document.InsertSectionPageBreak();
h2.StyleName = "Heading1";
document.InsertParagraph("Some very interesting content here as well");
var h3 = document.InsertParagraph("Heading 2.1");
h3.StyleName = "Heading2";
document.InsertParagraph("Not so very interesting...."); document.Save();
}
}
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(, );//三行四列
2.7.2 单元格合并
Table t = document.AddTable(,);
t.MergeCellsInColumn(, , );//public void MergeCellsInColumn(int columnIndex, int startRow, int endRow);竖向合并
t.Rows[].MergeCells(, );//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
使用开源word操作组件DocX的记录的更多相关文章
- 开源word操作组件DocX的记录
开源word操作组件DocX的记录 使用开源word操作组件DocX的记录 1.DocX简介 1.1 简介 DocX是一个在不需要安装word的情况下对word进行操作的开源轻量级.net组件,是由爱 ...
- DocX开源WORD操作组件的学习系列四
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列三
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列二
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- DocX开源WORD操作组件的学习系列一
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- 开源Word读写组件DocX 的深入研究和问题总结
一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...
- 开源Word读写组件DocX介绍与入门
来源:http://i.cnblogs.com/EditPosts.aspx?opt=1 读写Offic格式的文档,大家多少都有用到,可能方法也很多,组件有很多.这里不去讨论其他方法的优劣,只是向大家 ...
- C# 开源组件--Word操作组件DocX
使用模版生成简历 读写表格数据 合并单元格 工具源代码下载 学习使用 使用模版生成简历 下面将以一个简历实例来讲解DocX对表格的操作,先看看生成的效果 private static void Cre ...
- 读写Word的组件DocX介绍与入门
本文为转载内容: 文章原地址:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 开源Word读写组件DocX介绍与入门 阅读 ...
随机推荐
- js接收后台时间数据变成秒处理为正常格式
在做项目时,后台数据json传到前台ajax,数据中包含DateTime格式的数据,前台js操作时间数据的时候却发现日期变成了秒格式 js能对日期操作的那些方法均不能使用了,例如getDay()等等, ...
- Linux项目一
Linux项目一 引言: 这是我去年做的东西,一直没有时间整理,今天又要做一个基于这个项目的客户端与服务器版本. 以前我写的库文件中的函数耦合度很大,在一个函数中调用另一个函数,导致一无法拆开使用! ...
- Java学习日记-10 集合
集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...
- 在DataTable和DataView中查找指定记录
一.在DataTable中查找 1. 使用Select方法查找没有主键的表DataTable的Select方法返回一个DataRow数组,有四个重载的函数. DataRow[] drs = dt.Se ...
- jenkins 设置权限后管理员登陆提示:Access Denied admin没有Overall/Read权限
jenkins 设置权限后,管理员登陆提示:Access Denied admin没有Overall/Read权限 处理办法: window下编辑 xml 配置文件: %userprofile%\. ...
- Vagrant 部署python开发环境
Vagrant简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. 在Windows下 ...
- Core Services 层
Core Services层为所有的应用程序提供基础系统服务.可能应用程序并不直接使用这些服务,但它们是系统很多部分赖以建构的基础. 高阶特性 下面的部分描述一些比较常见特性,也许您正打算让您的应用程 ...
- app被Rejected 的各种原因翻译。这个绝对有用。
1. Terms and conditions(法律与条款) 1.1 As a developer of applications for the App Store you are bound by ...
- 设计模式(二)工厂模式Factory (创建型)
工厂模式分为三种:简单工厂模式 (Simple Factory) .工厂方法模式(Factory Method).抽象工厂模式(Abstract Factory) //举例:发送邮件和短信的例子 /* ...
- Android 自定义View (一)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View ...