开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc

【博主】反骨仔  【原文地址】http://www.cnblogs.com/liqingwen/p/5898368.html

  本打算过几天简单介绍下组件 Spire.XLS,突然发现园友率先发布了一篇,既然 xls 已经出现,为避免打上抄袭嫌疑,博主只能抢先一步使用 Spire.Doc 简单介绍 Doc 操作,下面是通过 WinForm 程序执行代码完成介绍的。

  本机环境:Win10 x64、VS 2015、MS Office 2016。

目录

介绍

  这是 E-iceblue 公司开发的其中一个组件 Spire.Doc,它专门为开发人员进行创建,读取,写入、转换打印 word 文档文件提供便利,并且,它不需要你安装 MS Office,就可以对 word 进行操作。这里使用的是免费版进行演示。

图1 官方截图

图2 版本间的功能的差异

一、NuGet 包安装 Dll 引用文件

图1-1 打开 NuGet 包管理器

图1-2 安装完后会多 3 个引用文件

二、开头不讲“Hello World”,读尽诗书也枉然

  1.先创建个空白的“demo1.docx”文件

图2-1

  2.随便写几句代码

     public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//打开 word 文档
var document = new Document(@"demo1.docx",FileFormat.Docx); //取第一部分
var section = document.Sections[]; //取第一个段落
var paragraph = section.Paragraphs[]; //追加字符串
paragraph.AppendText("Hello World!"); //保存为 .docx 文件
const string fileName = @"demo1-1.docx";
document.SaveToFile(fileName, FileFormat.Docx); //启动该文件
Process.Start(fileName);
}
}

图 2-2 效果图

  【备注】别忘了引入命名空间哦: using Spire.Doc;

  上面是向一个空的 word 文档加上“Hello World!”,这次换成直接创建一个新的包含“Hello World!”内容的文档。当然效果跟图 2-2 一样。

         private void button1_Click(object sender, EventArgs e)
{
//创建 word 文档
var document = new Document(); //创建新的部分
var section = document.AddSection(); //创建新的段落
var paragraph = section.AddParagraph(); //追加字符串
paragraph.AppendText("Hello World!"); //保存为 .doc 文件
const string fileName = @"demo1-1.doc";
document.SaveToFile(fileName, FileFormat.Doc); //启动该文件
Process.Start(fileName);
}

三、文档内容检索与替换

  1.内容检索

  先在“demo2.docx”中搞了篇《琵琶行》,启动时在文本框中输入“此时无声胜有声”进行检索。

         private void button1_Click(object sender, EventArgs e)
{
//加载 demo2.docx
var document = new Document(@"demo2.docx", FileFormat.Docx); //查找所有匹配的字符串
TextSelection[] textSelections = document.FindAllString(this.textBox1.Text, false, false); //修改背景色
foreach (TextSelection selection in textSelections)
{
selection.GetAsOneRange().CharacterFormat.TextBackgroundColor = Color.Gray;
} //保存文件
const string fileName = @"demo2-1.docx";
document.SaveToFile(fileName, FileFormat.Docx); //启动该文件
Process.Start(fileName);
}

图 3.1-1

  2.内容替换

  大家尝试在三的基础上简单修改下代码即可。

             document.Replace(this.textBox1.Text, this.textBox2.Text,false,false);

图3.2-1

四、格式化操作 - 字体、颜色、排版缩进和样式等

  1.字体和颜色

  新建一个空白的 demo3.docx 文件。

         private void button1_Click(object sender, EventArgs e)
{
//加载 docx
var document = new Document(@"demo3.docx", FileFormat.Docx); //获取第一个部分
Section section = document.Sections[]; //创建一个新的段落或者取第一个段落
Paragraph paragraph
= section.Paragraphs.Count > ? section.Paragraphs[] : section.AddParagraph(); //追加文本
const string text = "This paragraph is demo of text font and color. "
+ "The font name of this paragraph is Tahoma. "
+ "The font size of this paragraph is 20. "
+ "The under line style of this paragraph is DotDot. "
+ "The color of this paragraph is Blue. ";
TextRange txtRange = paragraph.AppendText(text); //设置字体
txtRange.CharacterFormat.FontName = "Tahoma"; //设置字体大小
txtRange.CharacterFormat.FontSize = ; //设置下划线
txtRange.CharacterFormat.UnderlineStyle = UnderlineStyle.DotDot; //改变字体颜色
txtRange.CharacterFormat.TextColor = Color.Blue; //保存文件
const string fileName = @"demo3-1.docx";
document.SaveToFile(fileName, FileFormat.Docx); //启动该文件
Process.Start(fileName);

图4.1-1

  2.排版缩进

  取空白的 docx 文件。

         private void button1_Click(object sender, EventArgs e)
{
//加载 docx
var document = new Document(@"demo3.docx", FileFormat.Docx); //获取第一个部分
Section section = document.Sections[]; //创建一个新的段落或者取第一个段落
Paragraph paragraph
= section.Paragraphs.Count > ? section.Paragraphs[] : section.AddParagraph(); //Append Text
paragraph.AppendText("这是缩进排版 Demo。");
paragraph.ApplyStyle(BuiltinStyle.Heading3); var random = new Random();
paragraph = section.AddParagraph();
for (var i = ; i < random.Next(, ); i++)
{
paragraph = section.AddParagraph();
paragraph.AppendText($"I'm {i}"); if (i == )
{
paragraph.ListFormat.ApplyBulletStyle();
}
else
{
paragraph.ListFormat.ContinueListNumbering();
} paragraph.ListFormat.CurrentListLevel.NumberPosition = -;
} //保存文件
const string fileName = @"缩进排版.docx";
document.SaveToFile(fileName, FileFormat.Docx); //启动该文件
Process.Start(fileName);
}

图4.2-1

  3.文本样式

         private void button1_Click(object sender, EventArgs e)
{
//创建一个新的 word
var document = new Document(); //创建第一部分
var section = document.AddSection(); //创建第一个段落
var paragraph = section.AddParagraph(); //追加字符串
paragraph.AppendText("Builtin Style:"); foreach (BuiltinStyle builtinStyle in Enum.GetValues(typeof(BuiltinStyle)))
{
paragraph = section.AddParagraph(); //增加段落 paragraph.AppendText(builtinStyle.ToString()); //追加文本 paragraph.ApplyStyle(builtinStyle); //应用样式
} const string fileName = "Style.docx";
document.SaveToFile(fileName, FileFormat.Docx); //保存文件 Process.Start(fileName); //启动
}

图4.3-1

小结

  以上只是几个小小的 Demo,当然,Spire.Doc 的强大远远不止如此。你使用该组件时所遇到的困难,我们可以共同来探讨哦。

[.NET] 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc的更多相关文章

  1. 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)

      [原文地址]http://www.cnblogs.com/liqingwen/p/5898368.html 序 本打算过几天简单介绍下组件 Spire.XLS,突然发现园友率先发布了一篇,既然 x ...

  2. Word 操作组件介绍 - Spire.Doc

    http://www.cnblogs.com/liqingwen/p/5898368.html

  3. 【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式

    背景: 年11月,微软宣布作为ECMA国际主要合作伙伴,将其开发的基于XML的文件格式标准化,称之为"Office Open XML" .Open XML的引进使office文档结 ...

  4. 读Zepto源码之样式操作

    这篇依然是跟 dom 相关的方法,侧重点是操作样式的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...

  5. 读Zepto源码之属性操作

    这篇依然是跟 dom 相关的方法,侧重点是操作属性的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...

  6. 在C#中使用Spire.doc对word的操作总结

    在C#中使用Spire.doc对word的操作总结 在最近的工程中我们要处理一些word文档.通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复.极少数可以完全实现的word组件又要收费. ...

  7. 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录

    使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...

  8. Spire.Doc组件读取与写入Word

    之前写了一篇开源组件DocX读写word的文章,当时时间比较匆忙选了这个组件,使用过程中还是有些不便,不能提前定义好模版,插入Form表单域进行替换.最近无意中发现Spire.Doc组件功能很强大,目 ...

  9. Word转图片(使用Spire.doc)

    Spire.Doc for .NET是一款由E-iceblue公司开发的专业的Word .NET类库.支持.net,WPF,Silverlight, 下载地址:http://www.e-iceblue ...

随机推荐

  1. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  2. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  3. NiceMark——我的Markdown编辑器

    NiceMark--我的Markdown编辑器 闲来无事,写了一个Markdown编辑器.基于electron,完全采用Web前段技术(Html,css,JavaScript)实现.代码已托管在Git ...

  4. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  5. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  6. 博客使用BOS上传图片

    1.博客平台的选定 从大学开始做个人主页算起,最开始是使用html,CSSS写简单的页面,后面大学毕业之后接触到了WordPress,就开始用WordPress搭建网站.现在还维护着一个农村网站.ht ...

  7. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  8. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  9. C#数组,List,Dictionary的相互转换

    本篇文章会向大家实例讲述以下内容: 将数组转换为List 将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dicti ...

  10. 发布APP到app store

    好久好久没写博客了,主要是 都在学习新东西,忙不赢啊. 近段时间在用AC平台学习开发移动APP, 今天开始发布应用. 在ac云控制台编译成ipa后,使用apple提供的Application Load ...