Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,它提供的原生API可以对Word、Excel、PDF、Powerpoint、Outlook、CAD、图片、3D、ZIP等超过100多种文件格式进行操作,还具有报表、二维码、GIS、任务等功能,可以使用C#(.NET/.NET Core/Mono/Xamarin...)、Java、Android、C++、Nodejs、PHP、Python等语言。

下面我使用ASP.NET Core MVC 做一个从Excel文件读取列表数据,并生成一个Word文档,同时在Word里面生成同样的列表和数据的例子。

建立项目

使用ASP.NET Core MVC 模板建立一个Web项目:

安装 Aspose.Cells 和 Aspose.Words

然后通过Nuget安装Aspose.Cells 和 Aspose.Words包,分别负责Excel和Word文档的操纵:

安装好之后,可以试用该产品。

安装许可

如果有授权许可的话,可以通过几种方式把它应用到该项目中,我喜欢的方式是使用文件:

把许可文件放在项目根目录,设置属性复制到输出文件夹:Copy if newer。

在 Program.cs里,添加以下代码,完成许可的设置:

运行,如果能输出以下内容,说明许可安装成功了:

读取Excel

为了方便,我直接把要读取的Excel文件放在项目根目录下:

其内容如下:

打开HomeController,在Privacy方法里进行实现,也就是我点击Privacy菜单的时候,会读取该Excel文件的内容并生成一个Word文档:

加载Excel文件

Aspose.Cells允许你使用多种方式加载Excel文件,这里我直接使用文件路径的方式:

可以看到,一个Excel文件就是一个Workbook。而数据呢,实际是放在不同sheet(工作簿)里面,所以还需要锁定sheet。

Workbook里面有个属性叫Worksheets,它的类型是WorksheetCollection,是一个集合,而这个集合实现了IList<T>接口,所以可以通过索引的方式访问它的元素。

获取第一个sheet:

读取单元格里的数据

现在就可以读取单元格里的数据了。

可以使用单元格的名称,例如 A2;或者行和列的索引等方式来访问单元格。

为了方便存储列表的数据,我建立了一个类,它的属性对应列表的列:

然后我使用行列索引的方式来读取单元格的内容,并把内容存放到一个List里面,并传递到View:

下面是View的代码:

运行程序,点击Privacy:

可以看到数据从Excel文件里成功的被读取了。

写入Word文档

在Aspose里面,Word文档对应的是Document对象。

在Document里面写内容,就需要使用DocumentBuilder:

剩下的就是模拟我们平时操作Word的一个过程。

首先我需要一个剧中的,字号较大的一个标题。我先设置字体,然后设置段落:

这里字体是24号大,加粗,宋体,蓝色,没有下划线。

然后创建了一个段落,剧中的。

最后写了一行文字。

创建表格

创建表格首先需要调用DocumentBuilder.StartTable.方法,然后使用DocumentBuilder.InsertCell来插入单元格,使用 DocumentBuilder.EndRow来结束每一行,最后使用DocumentBuilder.EndTable来结束这个表格。

整个代码就像我们手绘表格一样:

这里,首先我需要把字体改变成表格所需的大小。

然后开始一个格一个格的写入内容。

最后,在把table的宽度设为自适应窗口宽度。然后结束表格即可。

生成Word文件

生成Word文档的方式也是多种多样的,我这里直接生成文件:

这里面我注入了IWebHostEnvironment,用它找到项目根目录,然后把Word文件生成在里面。

运行,文档已经生成成功:

其内容如下:

目前还差一个表头,所以我添加如下代码:

这里我设置表头的字体是加粗的,表格其它内容的字体是不加粗的。

表头的背景色是浅灰色的。

最后的效果如下:

ASPOSE.Cells & ASPOSE.Words 操纵Excel和Word文档的 .NET Core 实例的更多相关文章

  1. Aspose.Words:如何添加另一个WORD文档中的Node对象

    原文:Aspose.Words:如何添加另一个WORD文档中的Node对象 首先看一段代码,这段代码意图从docSource中获取第一个表格,并插入docTarget的末尾: , true); doc ...

  2. 一键批量打印EXCEL、WORD文档

    一键批量打印EXCEL.WORD文档,本方法也可以打印同一个文档N份,可以批量打印A3.A4文档,包括单.双面打印等.希望能帮到广大朋友.请大家注重原创版权,不得在未经许可的下转载.传播,或者用来对同 ...

  3. 使用PHP导出Word文档的原理和实例

    PHP操作Word文档的方法有很多,这里再为大家提供一种方法. 原理   一般,有2种方法可以导出doc文档,一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方 ...

  4. Java中用Apache POI生成excel和word文档

    概述: 近期在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能.最后决定用Apache POI来完毕该项功能.本文就项目实现过程中的一些思路与代码与大家共享.同一时候.也作为自 ...

  5. C#使用NPOI对Word文档进行导出操作的dll最新版2.5.1

    Npoi导出非模板 最近使用NPOI做了个导出Word文档的功能,因为之前都是导出Excel很方便(不用模板),所以导出Word也选用了Npoi(也没有用模板,

  6. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  7. Asp.Net中应用Aspose.Cells输出报表到Excel 及样式设置

    解决思路: 1.找个可用的Aspose.Cells(有钱还是买个正版吧,谁开发个东西也不容易): 2.在.Net方案中引用此Cells: 3.写个函数ToExcel(传递一个DataTable),可以 ...

  8. aspose.cells根据模板导出excel

    又隔十多天没写博客了,最近都在忙项目的事情,公司人事变动也比较大,手头上就又多了一个项目.最近做用aspose.cells根据模板导出excel报价单的功能,顺便把相关的核心记下来,先上模板和导出的效 ...

  9. C# -- 使用Aspose.Cells创建和读取Excel文件

    使用Aspose.Cells创建和读取Excel文件 1. 创建Excel Aspose.Cells.License li = new Aspose.Cells.License(); li.SetLi ...

随机推荐

  1. Code Spell Checker & VSCode 单词拼写验证

    Code Spell Checker & VSCode 单词拼写验证 https://marketplace.visualstudio.com/items?itemName=streetsid ...

  2. IM & RTC

    IM & RTC 即时通信(IM) & 实时通信(RTC) 场景 即时通信(可靠性高,延时高) 场景包括文字聊天.语音消息发送.文件传输.音视频播放等; 发短信 实时通信(可靠性低,延 ...

  3. nasm and golink create a DLL x86

    制作DLL xxx.asm: %macro fb 0 push ebp mov ebp,esp %endmacro %macro fa 1 mov esp,ebp pop ebp ret %1 %en ...

  4. 「NGK每日快讯」2021.1.21日NGK公链第79期官方快讯!

  5. Renice INC:全球经济危机持续,2021年红酒市场走向如何?

    2021年,全球经济危机仍在持续,很多国家的经济出现了严重的下滑,不得不以降低利率维持经济.那么,全球经济危机对于红酒市场有什么影响?2021年,红酒市场走势如何呢?近日,美国知名红酒公司伦尼斯公司对 ...

  6. Java Reference核心原理分析

    本文转载自Java Reference核心原理分析 导语 带着问题,看源码针对性会更强一点.印象会更深刻.并且效果也会更好.所以我先卖个关子,提两个问题(没准下次跳槽时就被问到). 我们可以用Byte ...

  7. c#(winform)获取本地打印机

    引用 using System.Drawing.Printing; //代码 PrintDocument prtdoc = new PrintDocument(); string strDefault ...

  8. 看完我的笔记不懂也会懂----git

    Git学习笔记 - 什么是Git - 首次使用Git - DOS常用命令 - Git常用命令 - 关于HEAD - 版本回退 - 工作区.暂存区与版本库 - git追踪的是修改而非文件本身 - 撤销修 ...

  9. kubernetes Pod亲和性

    三种调度粘性,主要根据官方文档说明: NodeSelector(定向调度).NodeAffinity(Node亲和性).PodAffinity(Pod亲和性). 1.      nodeSelecto ...

  10. PAT-1145(Hashing - Average Search Time)哈希表+二次探测解决冲突

    Hashing - Average Search Time PAT-1145 需要注意本题的table的容量设置 二次探测,只考虑正增量 这里计算平均查找长度的方法和书本中的不同 #include&l ...