行使组件,读尽诗书也枉然
分类:计算机编程

早先不讲"Hello Word",读尽诗书也白搭 : Word 操作组件介绍 - Spire.Doc 

【博主】反骨仔  【原来的书文地址】

创设叁个非常轻巧的文书档案转变器 - 使用组件 Spire.Office

【博主】反骨仔    【原文】 

 

  本准备过几天简介下组件 Spire.XLS,乍然意识园友率先发表了大器晚成篇,既然 xls 已经冒出,为防止打上抄袭质疑,博主只可以超过一步使用 Spire.Doc 简介Doc 操作,上边是经过 WinForm 程序实行代码完结介绍的。

  本机情况:Win10 x64、VS 二〇一四、MS Office 二〇一六。

 

  之前,《始发不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc》一文简介了 Spire.Doc 怎么着利用。这一次我们来介绍如何营造贰个大致的文书档案转换器。

 

目录

  • NuGet 包安装 Dll 援用文件
  • 早先不讲“Hello World”,读尽诗书也白搭
  • 文书档案内容搜索与替换
  • 格式化操作 - 字体、颜色、排版缩进和体制等
  • 小结

 

目录

  • Spire.Office 介绍
  • 库引用
  • 分界面预览
  • 代码片段

 

介绍

   这是 E-iceblue 公司支付的当中叁个零器件 Spire.Doc,它特别为开荒人员举行创办,读取,写入、调换打字与印刷word 文书档案文件提供便利,并且,它不要求您安装 MS Office,就足以对 word 进行操作。这里运用的是无偿版张开身体力行。

图片 1

图1 官方截图

图片 2

图2 版本间的机能的出入

 

 

Spire.Office 介绍

图片 3

  关于 Spire.Office,它是贰个非常为开采人士创造,读取,写入设计的库,调换和从打字与印刷word 文书档案文件。作为一个独自的 .NET组件,它无需在机械上安装微软的 Word 等办公软件。然则,它能够将微软的“文书档案创制效用”集成到此外开荒职员的互联网应用程序中。它是二个保证的 MS Word 的API,能够进行许多Word文书档案管理任务。它援助 C #,VB.NET,ASP.NET 和 ASP.NET 的 MVC,以至扶植Word 97-2004 / 二〇〇五 / 2008 / 二〇一一 并能将它们转变为常用的文件格式,如 XML,RTF,TXT,XPS,EPUB 等高素质转变,反之亦然。它是少年老成款来自 E-iceblue 公司开辟的组件。

  以下是筛选“慧都控件网”对该集团的总结介绍。

  E-iceblue 是贰个 .NET、Silverlight 和 WPF 开垦控件承包商。e-iceblue 的指标是为客商提供高素质的控件去阅读和作品不相同格式的文本。E-iceblue 的控件被大多数的社会风气 500 强公司大范围运用。e-iceblue 的重大开辟者在开拓高品质、高素质的 .NET、Silverlight 和 WPF 控件能力方面有超越 10 年的经验。天天,e-iceblue 付加物援助大量的来源于超越陆10个国家的巨型/小型公司的开垦职员从更便于、越来越好、更加快和更富有功能的开销和向消费者交付可相信的应用程序。

 

生机勃勃、NuGet 包安装 Dll 引用文件

图片 4

图1-1 展开 NuGet 包微型机

图片 5

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

 

库引用

图片 6

  我只是想创设 word 和 excel 转变器,所以只在 Nuget 中设置上海体育地方中的 ~.Doc 和 ~.XLS。

 

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

  1.先创立个空白的“demo1.docx”文件
图片 7

图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     }

图片 8

图 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         }

 

分界面预览

  小编发掘当 ~.Doc 和 ~.XLS 同有的时候间装在叁个类库中的时候,在转变部分项目时会出现卓殊,所以使用了分层的格局。

图片 9

  WordConverter 只引用 ~.Doc。

 图片 10

  那是很普通的后生可畏款拖控件完毕的调换器。

 

三、文书档案内容寻找与替换

  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         }

图片 11

图 3.1-1

 

  2.内容替换

  大家尝试在三的根底上轻松校勘下代码就可以。

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

图片 12

图3.2-1

 

代码片段

  将基本的变换代码提炼出来会发觉,使用起来是比较轻易的。这里是 Word 调换的代码,Excel 能够比葫芦画瓢。

 1             //创建文档对象
 2             var document = new Document();
 3 
 4             //加载文档
 5             document.LoadFromFile("包含路径的文件名");  //例:document.SaveToFile("Sample.pdf", FileFormat.PDF);
 6             //保存文件
 7             document.SaveToFile("包含文件名的路径",  "想转换的文档格式类型");
 8 
 9             //打开文件,预览操作
10             Process.Start("包含路径的文件名");

  这里的文书档案格式类型的帮忙也是很多的,FileFormat 枚举。

  1     public enum FileFormat
  2     {
  3         //
  4         // 摘要:
  5         //     Microsoft Word 97 - 2003 Binary Document.
  6         Doc = 0,
  7         //
  8         // 摘要:
  9         //     Microsoft Word 97 - 2003 Binary Document or Template.
 10         Dot = 1,
 11         //
 12         // 摘要:
 13         //     Microsoft Word 2007 Document.
 14         Docx = 2,
 15         //
 16         // 摘要:
 17         //     Microsoft Word 2010 Document
 18         Docx2010 = 3,
 19         //
 20         // 摘要:
 21         //     Microsoft Word 2013 Document
 22         Docx2013 = 4,
 23         //
 24         // 摘要:
 25         //     Microsoft Word 2007 Template format.
 26         Dotx = 5,
 27         //
 28         // 摘要:
 29         //     Microsoft Word 2010 Template format.
 30         Dotx2010 = 6,
 31         //
 32         // 摘要:
 33         //     Microsoft Word 2013 Template format.
 34         Dotx2013 = 7,
 35         //
 36         // 摘要:
 37         //     Microsoft Word 2007 macro enabled file format.
 38         Docm = 8,
 39         //
 40         // 摘要:
 41         //     Microsoft Word 2010 macro enabled file format.
 42         Docm2010 = 9,
 43         //
 44         // 摘要:
 45         //     Microsoft Word 2013 macro enabled file format.
 46         Docm2013 = 10,
 47         //
 48         // 摘要:
 49         //     Microsoft Word 2007 macro enabled template format.
 50         Dotm = 11,
 51         //
 52         // 摘要:
 53         //     Microsoft Word 2010 macro enabled template format.
 54         Dotm2010 = 12,
 55         //
 56         // 摘要:
 57         //     Microsoft Word 2013 macro enabled template format.
 58         Dotm2013 = 13,
 59         //
 60         // 摘要:
 61         //     PDF format
 62         PDF = 14,
 63         //
 64         // 摘要:
 65         //     Rtf format
 66         Rtf = 15,
 67         //
 68         // 摘要:
 69         //     Xml file format.
 70         Xml = 16,
 71         //
 72         // 摘要:
 73         //     Text file format.
 74         Txt = 17,
 75         //
 76         // 摘要:
 77         //     Html format.
 78         Html = 18,
 79         //
 80         // 摘要:
 81         //     XPS format
 82         XPS = 19,
 83         //
 84         // 摘要:
 85         //     EPub format
 86         EPub = 20,
 87         //
 88         // 摘要:
 89         //     WordprocessingML format
 90         WordML = 21,
 91         //
 92         // 摘要:
 93         //     Word xml format.
 94         WordXml = 22,
 95         //
 96         // 摘要:
 97         //     The document is in the Word 6 or Word 95 format. Spire.Doc does not currently
 98         //     support loading such documents.
 99         DocPre97 = 23,
100         //
101         // 摘要:
102         //     Instructs Spire.Doc to recognize the format automatically.
103         Auto = 24
104     }

 图片 13

 

图片 14

 

  只是部分生手入门的代码,看起来没什么好说的。

  德姆o 下载地址:

  

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

  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 paragraph
11                 = 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         

图片 15

 图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 paragraph
11                 = section.Paragraphs.Count > 0 ? section.Paragraphs[0] : section.AddParagraph();
12 
13             //Append Text
14             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                 else
29                 {
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         }

图片 16

 图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         }

图片 17

图4.3-1

 

传送门

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

 

小结

  以上只是多少个小小的 Demo,当然,Spire.Doc 的强硬远远不唯有这么。你选用该器件时所境遇的许多不便,大家得以朝气蓬勃并来商讨哦。

 

本文由pc28.am发布于计算机编程,转载请注明出处:行使组件,读尽诗书也枉然

上一篇:pc28.am:Unity利用Sapi进行windows语音开垦,调节台语 下一篇:没有了
猜你喜欢
热门排行
精彩图文