Aspose Words 学习

简介

Aspose.Words 的是一个无需服务器安装office 全家桶即可对word文件进行操作,创建的一个组件
该组件支持 .NET JAVA C++ Python 平台。接下来我将使用.NET平台演示对word 基本操作,
Aspose.Words 是提供了两种对word文件操作的方式一个是以对象的方式一个是使用它的DocumentBuilder来以类似文档流的方式从左往右从上往下进行书写word,接下来我将主要以对象操作的方式来讲解一下如何使用Aspose Words

入门

既然大家都是程序员哪么对一个新事物的了解当然少不了HELLO WORD

//创建一个文档对象
Document doc = new Document();
//生成一个段落
Paragraph ph = new Aspose.Words.Paragraph(doc);
//RUN 是用于记录文字以及字体 文字大小的一个对象
Run run = new Run(doc) { Text = "HELLO WORD" };
//将文字加入到段落中
ph.AppendChild(run);
//行添加到表格
tb.AppendChild(firstRow);
//将段落加入到文档中
doc.Sections[0].Body.AppendChild(ph);
//输出文档
doc.Save("./hello.doc");

执行完上面的代码你就会得到一个 内容为HELLO WORD 的一个word文件
当然还有另一种方式来操作

//构建一个文档对象
Document doc = new Document();
//创建一个文件构建器
DocumentBuilder builder = new DocumentBuilder(doc);
//直接写入一段文字
builder.Writeln("helloWord");
doc.Save("hello.doc");

到这里你就已经将Aspose.Words 组件的基本操作学会了,当然在实际业务中以现在学习到的内容是远远不够的,那么接下来我们来学习一些更加牛逼的操作!

小知识

在Aspose Words 中他将word文档定义成了一个树,以我们刚学习的HELLO WORD为例在Aspose Words 实际是这样一颗树的结构,既然是一个树结构那么对于我们开发来说无非是定位到树的每一个节点来增加 修改 每个节点的内容了

Document
    -Section
        -body
            -Paragraph
                -Run
    -...
        -...

表格生成

在学习表格之前我们先来了解一个表格对象,在Aspose.Words 中 表格对象的类名叫做 Table 其完整命名控件为 Aspose.Words.Tables.Table,在Table 对象中我们主要了解的属性有Rows 以及Rows下的Cell 属性 接下来将以一个小demo的方式来学习如何生成一个表格。
需求:现在需要将一个学校中某个班级的学生导出到一个word的表格中 别问为什么不用excle

首选我们先把表格弄出来接下来就只要往里塞数据了

//创建表格对象
Document doc = new Document();
//生成一个表格
Table tb = new Table(doc);
#region 生成表头
//创建一个行对象
Row firstRow = new Row(doc);
//创建一个列对象
Cell nameCell = new Cell(doc);
//列对象增加一个文本
nameCell.AppendChild(new Run(doc) { Text = "姓名" });
//把列放到行里
firstRow.AppendChild(nameCell);
//年龄列
Cell ageCell = new Cell(doc);
//设置列的内容
ageCell.AppendChild(new Run(doc) { Text = "年龄" });
//列放到行中
firstRow.AppendChild(ageCell);
//把表格放到wrod文档中
doc.Sections[0].Body.AppendChild(tb);
#endregion
doc.Save("./student.doc");

运行上面的代码后你会发现怎么报错了???

未经处理的异常:  System.ArgumentException: Cannot insert a node of this type at this location.
   在 Aspose.Words.CompositeNode.(Node , Node , Boolean )
   在 Aspose.Words.CompositeNode.AppendChild(Node newChild)

为什么会报错呢?因为在Aspose Words 中Run需要在Paragraph对象之下,当然拉如果不报错你也看不到表格为什么呢?根据上述的小知识我们知道了Aspose Words 对于word文件的解析是一个树 但是上面的代码虽然你又创建表格对象但是你没有把表格放到文档对象的下面呀。接下我们将表格首行生成出来。

注意 一定加把节点挂好不要创建了节点而不去挂到父节点之下不然你回很郁闷的!

//创建表格对象
Document doc = new Document();
//生成一个表格
Table tb = new Table(doc);
#region 生成表头
//创建一个行对象
Row firstRow = new Row(doc);
//创建一个列对象
Cell nameCell = new Cell(doc);
Paragraph namePH = new Paragraph(doc);
namePH.AppendChild(new Run(doc) { Text = "姓名" });
//列对象增加一个文本
nameCell.AppendChild(namePH);
//把列放到行里
firstRow.AppendChild(nameCell);
//年龄列
Cell ageCell = new Cell(doc);
Paragraph agePH = new Paragraph(doc);
agePH.AppendChild(new Run(doc) { Text = "年龄" });
//设置列的内容
ageCell.AppendChild(agePH);
//列放到行中
firstRow.AppendChild(ageCell);
//把行放入表格
tb.AppendChild(firstRow);
//把表格放到wrod文档中
doc.Sections[0].Body.AppendChild(tb);
#endregion
doc.Save("./student.doc");

运行上述代码后你会得到一个这样的表格,那么接下来我们无非就是在多生成几行写入到表中。由于篇幅问题这里就不在将代码放出。

名称 年龄

表格进阶

接下来要说啥呐?当然是表格中让人又爱又恨的跨行跨列了。

本内容需要输入密码才能查看

版权声明:本文为小幻博客「小幻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://52xhuan.cn/280.html
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录