Word控件Spire.Doc 【书签】教程(8):用 C#、VB.NET 中的 Word 文档中的表格替换书签
2023-09-11 14:14:49 时间
Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.Doc for.NET 最新下载(qun:767755948)https://www.evget.com/product/3368/download
书签是指定 Word 文档中重要位置的好方法。Spire.Doc支持访问文档中的书签,并在书签位置插入文本、图片、表格等对象。本文将向您展示如何访问特定的书签并将当前书签内容替换为表格。
第 1 步:加载模板 Word 文档。
Document doc = new Document(); doc.LoadFromFile(@"C:\Users\Administrator\Desktop\employee.docx");
第 2 步:创建一个表对象。
Table table = new Table(doc,true);
第 3 步:用样本数据填充表。
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("job", typeof(string)); dt.Columns.Add("email", typeof(string)); dt.Columns.Add("salary", typeof(string)); dt.Rows.Add(new string[] { "Emp_ID", "Name", "Job", "E-mail", "Salary" }); dt.Rows.Add(new string[] { "0241","Andrews", "Engineer", "andrews@outlook.com" ,"3.8K"}); dt.Rows.Add(new string[] { "0242","White", "Manager", "white@outlook.com","4.2K" }); dt.Rows.Add(new string[] { "0243","Martin", "Secretary", "martin@gmail.com", "3.5K" }); table.ResetCells(dt.Rows.Count, dt.Columns.Count); for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString()); } }
第 4 步:通过名称获取特定书签。
navigator.MoveToBookmark("bookmark_employee");
第 5 步:创建一个 TextBodyPart 实例并将表格添加到其中。
BookmarksNavigator navigator = new BookmarksNavigator(doc); navigator.MoveToBookmark("bookmark_employee");
第 6 步:用 TextBodyPart 对象替换当前书签内容。
navigator.ReplaceBookmarkContent(part);
第 7 步:保存文件。
doc.SaveToFile("output.docx", FileFormat.Docx2013);
结果:
完整代码:
using Spire.Doc; using Spire.Doc.Documents; using System.Data; namespace ReplaceBookmark { class Program { static void Main(string[] args) { Document doc = new Document(); doc.LoadFromFile(@"C:\Users\Administrator\Desktop\employee.docx"); Table table = new Table(doc, true); DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("job", typeof(string)); dt.Columns.Add("email", typeof(string)); dt.Columns.Add("salary", typeof(string)); dt.Rows.Add(new string[] { "Emp_ID", "Name", "Job", "E-mail", "Salary" }); dt.Rows.Add(new string[] { "0241", "Andrews", "Engineer", "andrews@outlook.com", "3.8K" }); dt.Rows.Add(new string[] { "0242", "White", "Manager", "white@outlook.com", "4.2K" }); dt.Rows.Add(new string[] { "0243", "Martin", "Secretary", "martin@gmail.com", "3.5K" }); table.ResetCells(dt.Rows.Count, dt.Columns.Count); for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString()); } } BookmarksNavigator navigator = new BookmarksNavigator(doc); navigator.MoveToBookmark("bookmark_employee"); TextBodyPart part = new TextBodyPart(doc); part.BodyItems.Add(table); navigator.ReplaceBookmarkContent(part); doc.SaveToFile("output.docx", FileFormat.Docx2013); System.Diagnostics.Process.Start("output.docx"); } } }
以上便是用 C#、VB.NET 中的 Word 文档中的表格替换书签,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。
相关文章
- 数据库数据导入导出系列之五 C#实现动态生成Word(转)
- C#.NET常见问题(FAQ)-如何不显示窗口的关闭按钮
- C#.NET如何判断是否有缺少的using
- C#.NET 如何打开高版本的sln文件
- 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
- C# 中使用System.Net.Http.HttpClient 模拟登录博客园 (GET/POST)
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
- C#动态编译计算表达式的值
- C#[Serializable]在C#中的作用-NET 中的对象序列化
- C# 格式化string类型的金额
- C#.Net操作注册表RegistryKey
- C# 关于XML遍历新增节点,修改属性小例
- C# 中的装箱与拆箱
- C# ToString()格式化时间,常用模式
- 【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩
- 【原创】开源Math.NET基础数学类库使用(11)C#计算相关系数
- 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分
- Atitit 项目语言的选择 java c#.net php??
- Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)
- Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Atitit,通过pid获取进程文件路径 java php c#.net版本大总结
- Atitit.得到网络邻居列表java php c#.net python
- c# - 命名规则
- C# OpenFileDialog和PictrueBox
- C# DIctionary:集合已修改,可能无法执行枚举操作
- C#+OpenGL+FreeType显示3D文字(1) - 从TTF文件导出字形贴图
- asp.net(c#)有关 Session 操作的几个误区
- C# Task详解
- .NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...