博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc (转)
阅读量:5943 次
发布时间:2019-06-19

本文共 6903 字,大约阅读时间需要 23 分钟。

 

 

 

【原文地址】

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

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

 

目录

 

介绍

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

图1 官方截图

图2 版本间的功能的差异

 

 

一、NuGet 包安装 Dll 引用文件

图1-1 打开 NuGet 包管理器

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

 

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

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

图2-1

  2.随便写几句代码

1     public partial class Form1 : Form 2     { 3         public Form1() 4         { 5             InitializeComponent(); 6         } 7  8         private void button1_Click(object sender, EventArgs e) 9         {10             //打开 word 文档11             var document = new Document(@"demo1.docx",FileFormat.Docx);12 13             //取第一部分14             var section = document.Sections[0];15 16             //取第一个段落17             var paragraph = section.Paragraphs[0];18 19             //追加字符串20             paragraph.AppendText("Hello World!");21 22             //保存为 .docx 文件23             const string fileName = @"demo1-1.docx";24             document.SaveToFile(fileName, FileFormat.Docx);25 26             //启动该文件27             Process.Start(fileName);28         }29     }

图

图 2-2 效果图

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

 

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

1         private void button1_Click(object sender, EventArgs e) 2         { 3             //创建 word 文档 4             var document = new Document(); 5  6             //创建新的部分 7             var section = document.AddSection(); 8  9             //创建新的段落10             var paragraph = section.AddParagraph();11 12             //追加字符串13             paragraph.AppendText("Hello World!");14 15             //保存为 .doc 文件16             const string fileName = @"demo1-1.doc";17             document.SaveToFile(fileName, FileFormat.Doc);18 19             //启动该文件20             Process.Start(fileName);21         }

 

三、文档内容检索与替换

  1.内容检索

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

1         private void button1_Click(object sender, EventArgs e) 2         { 3             //加载 demo2.docx 4             var document = new Document(@"demo2.docx", FileFormat.Docx); 5  6             //查找所有匹配的字符串 7             TextSelection[] textSelections = document.FindAllString(this.textBox1.Text, false, false); 8  9             //修改背景色10             foreach (TextSelection selection in textSelections)11             {12                 selection.GetAsOneRange().CharacterFormat.TextBackgroundColor = Color.Gray;13             }14 15             //保存文件16             const string fileName = @"demo2-1.docx";17             document.SaveToFile(fileName, FileFormat.Docx);18 19             //启动该文件20             Process.Start(fileName);21         }

图 3.1-1

 

  2.内容替换

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

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

图3.2-1

 

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

  1.字体和颜色

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

1         private void button1_Click(object sender, EventArgs e) 2         { 3             //加载 docx 4             var document = new Document(@"demo3.docx", FileFormat.Docx); 5  6             //获取第一个部分 7             Section section = document.Sections[0]; 8  9             //创建一个新的段落或者取第一个段落10             Paragraph paragraph11                 = section.Paragraphs.Count > 0 ? section.Paragraphs[0] : section.AddParagraph();12 13             //追加文本14             const string text = "This paragraph is demo of text font and color. "15                                 + "The font name of this paragraph is Tahoma. "16                                 + "The font size of this paragraph is 20. "17                                 + "The under line style of this paragraph is DotDot. "18                                 + "The color of this paragraph is Blue. ";19             TextRange txtRange = paragraph.AppendText(text);20 21             //设置字体22             txtRange.CharacterFormat.FontName = "Tahoma";23 24             //设置字体大小25             txtRange.CharacterFormat.FontSize = 20;26 27             //设置下划线28             txtRange.CharacterFormat.UnderlineStyle = UnderlineStyle.DotDot;29 30             //改变字体颜色31             txtRange.CharacterFormat.TextColor = Color.Blue;32 33             //保存文件34             const string fileName = @"demo3-1.docx";35             document.SaveToFile(fileName, FileFormat.Docx);36 37             //启动该文件38             Process.Start(fileName);39

 图4.1-1

 

  2.排版缩进

  取空白的 docx 文件。

1         private void button1_Click(object sender, EventArgs e) 2         { 3             //加载 docx 4             var document = new Document(@"demo3.docx", FileFormat.Docx); 5  6             //获取第一个部分 7             Section section = document.Sections[0]; 8  9             //创建一个新的段落或者取第一个段落10             Paragraph paragraph11                 = section.Paragraphs.Count > 0 ? section.Paragraphs[0] : section.AddParagraph();12 13             //Append Text14             paragraph.AppendText("这是缩进排版 Demo。");15             paragraph.ApplyStyle(BuiltinStyle.Heading3);16 17             var random = new Random();18             paragraph = section.AddParagraph();19             for (var i = 0; i < random.Next(0, 10); i++)20             {21                 paragraph = section.AddParagraph();22                 paragraph.AppendText($"I'm {i}");23 24                 if (i == 0)25                 {26                     paragraph.ListFormat.ApplyBulletStyle();27                 }28                 else29                 {30                     paragraph.ListFormat.ContinueListNumbering();31                 }32 33                 paragraph.ListFormat.CurrentListLevel.NumberPosition = -10;34             }35 36             //保存文件37             const string fileName = @"缩进排版.docx";38             document.SaveToFile(fileName, FileFormat.Docx);39 40             //启动该文件41             Process.Start(fileName);42         }

 图4.2-1

 

  3.文本样式

1         private void button1_Click(object sender, EventArgs e) 2         { 3             //创建一个新的 word 4             var document = new Document(); 5  6             //创建第一部分 7             var section = document.AddSection(); 8  9             //创建第一个段落10             var paragraph = section.AddParagraph();11 12             //追加字符串13             paragraph.AppendText("Builtin Style:");14 15             foreach (BuiltinStyle builtinStyle in Enum.GetValues(typeof(BuiltinStyle)))16             {17                 paragraph = section.AddParagraph(); //增加段落18 19                 paragraph.AppendText(builtinStyle.ToString());  //追加文本20 21                 paragraph.ApplyStyle(builtinStyle); //应用样式22             }23 24             const string fileName = "Style.docx";25             document.SaveToFile(fileName, FileFormat.Docx); //保存文件26 27             Process.Start(fileName);    //启动28         }

图4.3-1

 

小结

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

转载地址:http://nfwxx.baihongyu.com/

你可能感兴趣的文章
Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
查看>>
django中聚合aggregate和annotate GROUP BY的使用方法
查看>>
TFS简介
查看>>
docker管理平台 shipyard安装
查看>>
安装django
查看>>
Bootstrap3 栅格系统-简介
查看>>
ADODB类库操作查询数据表
查看>>
第五章(5)Libgdx应用框架之线程
查看>>
【java】File的使用:将字符串写出到本地文件,大小0kb的原因
查看>>
安卓音乐播放器开发实例
查看>>
Junit指定测试执行顺序
查看>>
PHP put提交和获取数据
查看>>
s3接口认证说明
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
线程的一些解释
查看>>
mysql+keepalived搭建高可用环境
查看>>
java实现插入排序
查看>>
Linux下php连接sql server 2008
查看>>
python字符串格式化
查看>>
关于html和CSS的几个基本知识点
查看>>