借助 Aspose.Words,在 Word 文档中创建表格

news2024/12/28 5:33:39

Word 文档中的表格是一种强大的工具,可用于以清晰、结构化的格式组织和呈现数据。表格由行和列组成,行和列相交形成可包含文本、数字、图像或其他元素的单元格。在本文中,我们将学习如何使用 C# 以编程方式在 Word 文档中创建表格。本文通过代码示例展示了在DOCX文件中创建表格的各种方法。

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

Aspose.words for.net下载   Aspose.words for for java下载

在 Word 文档中创建表格的 C# 库

为了处理 Word 文档中的表格,我们将使用Aspose.Words for .NET库。这是一个强大的库,可让您直接在 .NET 应用程序中以编程方式动态创建和操作 Word 文档。

请使用以下命令下载 DLL或从NuGet安装它:

PM> Install-Package Aspose.Words
使用 C# 在 Word 文档中创建表格

有两种方法可以使用 Aspose.Words for .NET 在 Word 文档中创建表格:

  • 使用 DocumentBuilder 类
  • 使用 DOM(文档对象模型)

您可以选择最适合您需求的方法。让我们详细探讨每种方法。

使用 DocumentBuilder 创建表

DocumentBuilder可以高效、轻松地从头开始创建动态文档或修改现有文档。借助其全面的功能,我们可以无缝插入各种内容元素,包括文本、复选框、OLE 对象、段落、列表、表格、图像等等。

请按照以下步骤使用 DocumentBuilder 类在 Word 文档中创建表格。

  1. 创建Document类的对象。
  2. 创建DocumentBuilder类的对象。
  3. 使用StartTable()方法创建一个新表。
  4. 使用InsertCell()方法插入一个单元格。
  5. 使用Write()方法将文本插入单元格。
  6. 根据需要重复插入单元格并将文本插入单元格。
  7. 使用EndRow()方法结束一行。
  8. 使用EndTable()方法结束表。
  9. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建表格。

// This code example demonstrates how to create a table in a Word document using C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Start building the table.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Build the second cell.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Call the following method to end the row and start a new row.
builder.EndRow();

// Build the first cell of the second row.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Build the second cell.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Signal that we have finished building the table.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");

使用 DocumentBuilder 在 Word 中创建表格

使用文档对象模型 (DOM) 创建表格

文档对象模型 (DOM)是Word 文档的内存表示形式。它允许通过编程方式读取、操作和修改 Word 文档的内容和格式。

请按照以下步骤使用 DOM 在 Word 文档中创建表格。

  1. 创建Document类的对象。
  2. 使用Table()类创建一个新表。
  3. 使用AppendChild()方法将表格添加到文档主体。
  4. 创建Row类的对象并使用Table.AppendChild(Row)方法将其插入表中。
  5. 创建Cell类的对象,设置格式选项,并向单元格添加文本。
  6. 使用Row.AppendChild(Cell)方法将单元格插入到行中。
  7. 之后,根据需要重复该过程以获得尽可能多的行。
  8. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建表格。

// This code example demonstrates how to create a table in a Word document using DOM in C#
Document doc = new Document();

// We start by creating the table object. Note that we must pass the document object
// to the constructor of each node. This is because every node we create must belong
// to some document.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Here we could call EnsureMinimum to create the rows and cells for us. This method is used
// to ensure that the specified node is valid. In this case, a valid table should have at least one Row and one cell.

// Instead, we will handle creating the row and table ourselves.
// This would be the best way to do this if we were creating a table inside an algorithm.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// We can now apply any auto fit settings.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Append a cell
row.AppendChild(cell);

// We would then repeat the process for the other cells and rows in the table.
// We can also speed things up by cloning existing cells and rows.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Save the document
doc.Save("InsertTableDirectly.docx");

使用文档对象模型 (DOM) 创建表格

使用 C# 在 Word 文档中创建嵌套表格

我们还可以在表格的单元格内创建新表格。以下是在 Word 文档中创建嵌套表格的步骤。

  1. 创建Document类的对象。
  2. 创建DocumentBuilder类的对象。
  3. 使用StartTable()方法创建一个表并获取对象中对该表的引用。
  4. 使用InsertCell()方法插入一个单元格并获取对象中对该单元格的引用。
  5. 使用DocumentBuilder.Write()方法将文本插入单元格。
  6. 根据需要重复插入单元格并将文本插入单元格。
  7. 插入所有行后结束表格。
  8. 使用MoveTo(cell.FirstParagraph)方法将控制权移至所需单元格内。
  9. 通过插入单元格来创建另一个表格,完成后结束表格。
  10. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 在 Word 文档中创建嵌套表格。

// This code example demonstrates how to create a nested table in a Word document using C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// This call is important to create a nested table within the first table.
// Without this call, the cells inserted below will be appended to the outer table.
builder.EndTable();

// Move to the first cell of the outer table.
builder.MoveTo(cell.FirstParagraph);

// Build the inner table.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Save the document
doc.Save("NestedTable.docx");

使用 C# 在 Word 文档中创建嵌套表格

使用 C# 克隆 Word 文档中的现有表格

我们可以按照以下步骤克隆Word文档中现有的表格:

  1. 使用Document类加载带有表的现有文档。
  2. 使用GetChild(NodeType.TABLE, int, boolean)方法获取对象中的表。
  3. 使用Table.Clone(True)方法克隆表。
  4. 使用Table.ParentNode.InsertAfter()方法插入克隆表。
  5. 使用Table.ParentNode.InsertAfter(new Paragraph(Document), Table)方法在表格之间插入一个空段落。
  6. 最后,使用Save()方法保存Word文档。

以下代码示例展示如何使用 C# 克隆 Word 文档中的表格。

// This code example demonstrates how to clone an existing table in a Word document using C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Clone the table and insert it into the document after the original.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Insert an empty paragraph between the two tables,
// or else they will be combined into one upon saving this has to do with document validation.
table.ParentNode.InsertAfter(new Paragraph(doc), table);

doc.Save("CloneCompleteTable.docx");

使用 C# 克隆 Word 文档中的现有表格

通过 HTML 在 Word 文档中创建表格

我们还可以按照以下步骤使用 HTML 字符串在 Word 文档中创建表格:

  1. 创建Document类的对象。
  2. 创建DocumentBuilder类的对象。
  3. 使用DocumentBuilder.InsertHtml(String)方法将表的 HTML 字符串插入文档。
  4. 最后,使用Document.Save()方法保存文档。

以下代码示例显示如何使用 C# 在 Word 文档中插入 HTML 表格。

// This code example demonstrates how to insert an HTML table in a Word document using C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Note that AutoFitSettings does not apply to tables inserted from HTML.
builder.InsertHtml("<table>" +
"<tr>" +
"<td>Row 1, Cell 1</td>" +
"<td>Row 1, Cell 2</td>" +
"</tr>" +
"<tr>" +
"<td>Row 2, Cell 2</td>" +
"<td>Row 2, Cell 2</td>" +
"</tr>" +
"</table>");

doc.Save("InsertTableFromHtml.docx");

通过 HTML 在 Word 文档中创建表格

在本文中,我们学习了如何使用 C# 在 Word 文档中创建表格。我们探索了使用 C# 以编程方式创建表格的各种方法。我们还了解了如何创建嵌套表格或动态克隆 Word 文档中的现有表格。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚幻5|高级运动实现基础的翻滚Roll 基础篇

一&#xff0c;调整项目设置——输入 1.我设置了翻滚是同时按W&#xff0b;Shift按键&#xff0c;如果你有更好的按键安排&#xff0c;评论区留言 二&#xff0c;打开角色蓝图&#xff0c;打开图表—基础移动&#xff08;你的放图表就行了&#xff0c;我这里是安排了很多排版的…

LDRA Testbed(TBrun)软件单元测试_实例讲解(局部静态变量)

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成&#xff08;自动静态分析并用邮件自动发送分析结果&#xff09; LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…

使用Hugging Face构建大型语言模型应用

在本文中&#xff0c;我们将介绍如何使用Hugging Face的大型语言模型&#xff08;LLM&#xff09;构建一些常见的应用&#xff0c;包括摘要&#xff08;Summarization&#xff09;、情感分析&#xff08;Sentiment analysis&#xff09;、翻译&#xff08;Translation&#xff…

初步融合snowboy+pyttsx3+espeak+sherpa-ncnn的python代码

在前文《将Snowboy语音唤醒的“叮”一声改成自定义语言》中&#xff0c;我已经实现唤醒snowboy后&#xff0c;树莓派会说一句自定义文本。今天&#xff0c;会在此基础上增加ASR的应用&#xff08;基于sherpa-ncnn&#xff09;。 首先&#xff0c;编写一个asr.py的程序&#xf…

手撕快排——三种实现方法(附动图及源码)

&#x1f916;&#x1f4bb;&#x1f468;‍&#x1f4bb;&#x1f469;‍&#x1f4bb;&#x1f31f;&#x1f680; &#x1f916;&#x1f31f; 欢迎降临张有志的未来科技实验室&#x1f916;&#x1f31f; 专栏&#xff1a;数据结构 &#x1f468;‍&#x1f4bb;&…

【C++】STL——list

前言 本篇博客我们接着来理解一个STL库里的list链表的结构&#xff0c;根据前面数据结构的铺垫&#xff0c;理解这个结构相对比较容易。我们来一起看看吧 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;C 若有问题 评论区见&#x1f4dd; &#x1f38…

中国与中南半岛国家多国语言系统开发i18n配置老挝、柬埔寨语言配置

前言 当下中国与中南半岛国家经济合作密切&#xff0c;同时也需要软件系统&#xff0c;多国使用系统需要实现多语言&#xff0c;我们团队最近也接到一个中、老、柬三国的业务软件&#xff0c;需要将软件做成三个国家语言。然后我们网上收i18n的老、柬的语言包命名&#xff0c;…

计算机毕业设计 美妆神域网站 美妆商城系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

j2:基于pytorch的resnet实验:鸟类分类

基于pytorch的resnet实验&#xff1a;鸟类分类 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 Ⅰ Ⅰ Ⅰ Introduction&#xff1a; 本文为机器学习使用resnet实现鸟类图片分类的实验&#xff0c;素材来自网…

跟李沐学AI:目标检测的常用算法

区域神经网络R-CNN 使用启发式搜索算法来选择锚框 -> 使用预训练模型来对每个锚框抽取特征 -> 训练一个SVM对类别进行分类 -> 训练一个线性回归模型来预测边缘框偏移 锚框大小不一&#xff0c;如何将不同的锚框统一为一个batch? -> 兴趣区域池化层 兴趣区域(RoI…

界面优化 - QSS

目录 1、背景介绍 2、基本语法 3、QSS 设置方式 3.1 指定控件样式设置 代码示例: 子元素受到影响 3.2 全局样式设置 代码示例: 使用全局样式 代码示例: 样式的层叠特性 代码示例: 样式的优先级 3.3 从文件加载样式表 代码示例: 从文件加载全局样式 3.4 使用 Qt Desi…

最新UI六零导航系统源码 | 多模版全开源

六零导航页 (LyLme Spage) 致力于简洁高效无广告的上网导航和搜索入口&#xff0c;支持后台添加链接、自定义搜索引擎&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广&#xff0c;简约而不简单。 使用PHPMySql&#xff0c;增加后台管理 多模板选择&#xff0c;支持在…

MySQL基础练习题46-每位经理的下属员工数量

目录 题目 准备数据 分析数据 总结 题目 我们将至少有一个其他员工需要向他汇报的员工&#xff0c;视为一个经理。 返回需要听取汇报的所有经理的 ID、名称、直接向该经理汇报的员工人数&#xff0c;以及这些员工的平均年龄&#xff0c;其中该平均年龄需要四舍五入到最接近…

【网络】IP分片与路径MTU发现

目录 MTU值 IP分片与重组 路径MTU发现 路径MTU发现原理 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 相关文章&#xff1a;【网络】从零认识IPv4-CSDN博客 MTU值 由于物理层的硬件限制&#xff0c;为了使网络性能最优&#xff0c;在数据链路层会有一个MTU值&#xff0…

算法【Java】—— 双指针算法

双指针算法 常见的双指针有对撞指针&#xff0c;快慢指针以及前后指针&#xff08;这个前后指针是指两个指针都是从从一个方向出发&#xff0c;去往另一个方法&#xff0c;也可以认为是小学学习过的两车并行&#xff0c;我也会叫做同向指针&#xff09;&#xff0c;在前后指针…

Python3网络爬虫开发实战(10)模拟登录(需补充账号池的构建)

文章目录 一、基于 Cookie 的模拟登录二、基于 JWT 模拟登入三、账号池四、基于 Cookie 模拟登录爬取实战五、基于JWT 的模拟登录爬取实战六、构建账号池 很多情况下&#xff0c;网站的一些数据需要登录才能查看&#xff0c;如果需要爬取这部分的数据&#xff0c;就需要实现模拟…

KNN图像识别实例--手写数字识别

目录 前言 一、导入库 二、导入图像并处理 1.导入图像 2.提取出图像中的数字 3.将列表转换成数组 4.获取特征数据集 5.获取标签数据 三、使用KNN模型 1.创建KNN模型并训练 2.KNN模型出厂前测试 3.使用测试集对KNN模型进行测试 四、传入单个图像&#xff0c;使用该模…

叉车高位盲区显示器 无线摄像头免打孔 视线遮挡的解决方案

叉车作业货叉叉货时&#xff0c;货叉升降无法看清位置&#xff0c;特别是仓储的堆高车&#xff0c;司机把头探出去才勉强可以靠经验找准方位&#xff01;一个不小心就可能叉歪了&#xff0c;使货物倾斜、跌落等等&#xff0c;从而发生事故&#xff01;如何将隐患扼杀&#xff0…

【JAVA入门】Day21 - 时间类

【JAVA入门】Day21 - 时间类 文章目录 【JAVA入门】Day21 - 时间类一、JDK7前的时间相关类1.1 Date1.2 SimpleDateFormat1.3 Calendar 二、JDK8新增的时间相关类2.1 Date 相关类2.1.1 ZoneId 时区2.1.2 Instant 时间戳2.1.3 ZoneDateTime 带时区的时间 2.2 DateTimeFormat 相关…

刷题DAY7

三个数的排序 题目&#xff1a;输入三个整数x&#xff0c;y&#xff0c;z&#xff0c;请把这三个数由小到大输出 输入&#xff1a;输入数据包含3个整数x&#xff0c;y&#xff0c;z&#xff0c;分别用逗号隔开 输出&#xff1a;输出由小到大排序后的结果&#xff0c;用空格隔…