[2020铁人赛] Day26 - 用DocX汇出Word档案

今天来讲一下user的需求,要汇出一份word档,并且需要套上参数并替换值,其实nuget上有很多套件可以支援这种文书工作,像是Open XML,这边介绍一款值绝不拖泥带水的DocX。

首先至Nuget上下载dll,就可以直接使用
https://ithelp.ithome.com.tw/upload/images/20201011/20111766T4gyaTIWBw.png

但引用时需要.Net Framework 4.0以上的环境,若版本不到就去使用Open XML之类的。

接着我们需要载入Docx档案,顾名思义就是.docx的格式

Example1
需要范本档

using (DocX doc = DocX.Load("c:\source.docx")) //取得范本档
{
    //取代文字
    doc.ReplaceText("$TEST$", "123");
    // 将取代完成的文件内容储存成 Word 文件
    doc.SaveAs("C:\test.docx");
}

Example2
同时也支援Stream

using (DocX doc = DocX.Load(Stream))
{
    //取代文字
    doc.ReplaceText("$TEST$", "123");
    // 将取代完成的文件内容储存成 Word 文件
    doc.SaveAs("C:\test.docx");
}

example3
产生表格

    using (DocX doc = DocX.Load(Stream))
    {
      //定义1列2行的table
      var tb = doc.AddTable(1,2);
      tb.Design = TableDesign.ColorfulListAccent1;//套上的表格格式
      tb.Alignment = Alignment.center;//至中格式
      tb.Rows[0].Cells[0].Paragraphs[0].Append("Test");
      tb.Rows[0].Cells[1].Paragraphs[0].Append("99");
      var row = tb.InsertRow();//新增列
      row.Cells[0].Paragraphs[0].Append("Scott");
      var pa = document.InsertParagraph("插入一个新段落");
      pa.InsertTableAfterSelf(tb);
      document.Save();
    }

简单就可以替换文字并且汇出,而且也有支援表格汇出,文字的内容(字型、颜色)都可以调整,相当容易上手,推荐给大家。

参考资料:
https://github.com/xceedsoftware/DocX
https://doc.xceed.com/xceed-document-libraries-for-net/Xceed.Document.NET~Xceed.Document.NET.TableDesign.html


<<:  Day027-透过Vuex-实作简易部落格-列举及删除文章

>>:  26. 产品管理页面

理解网际网路协定(二):浮动 IP、固定 IP、虚拟 IP,这麽多种 IP 都是什麽?

理解了 IP 位置的组成,我们接着来看看一些常被提到的相关名词:浮动、固定及虚拟 IP 位置。 浮动...

D7 第三周整理笔记

当周进度: ALG101 到 单元六:内建函式做做看 JS102 先自首,这周进度很多部分我当初都跳...

Spring Framework X Kotlin Day 4 MVC

GitHub Repo https://github.com/b2etw/Spring-Kotlin...

Day1:白兔

茕茕白兔,东走西顾。衣不如新,人不如故。心理学研究#怀旧,会让人变得积极乐观,本来想读VB重温16岁...

22. 工程师之伤 x 用眼过度 x 眼药水

眼药水用完了,今天去补货。 因为我每次都记不得药的名字,药水用完都不能丢空罐很麻烦,写完这篇终於可以...