【C#】操作word 【Aspose.Words】
上图是要填充的word模板,就是一个接口说明文档。那个像书名号括起来的东西就是要替换的,这个东西并不是键盘输入的书名号,它是文档部件的一种,要插入这个东西需要:
打开模板word文件,用office打开,点击插入,找到下面的文档部件
在点开后弹出的下拉菜单里选择域
在弹出的窗口里,选择类别 邮件合并
域名选择MergeFied
最后输入如Cvouchname的字样。
这样我们就添加好了一个域了。
对表格的处理,表格的循环体要这样写<TableStart:headList>表示循环的开始 headList是填充表格的DataTable的名称。<TableEnd:headList>也必须写。
表格里面的 EnField就是自己定义的headList的列名,这个域名和headList的列名相同就会渲染到文档域名处。
做好这些 模板就准备好了。
代码部分:
先使用nuget 安装 Aspose.Words这个组件,没有nuget可以百度Aspose.Words。
1 2 3 4 5 6 7 | //模板里的域 String[] fieldNames = new String[] { "Cvouchname" , "Cvouchtype" , "BusinessScene" , "Cvouchname1" , "JsonStr" }; var doc = new Document(tempPath); //tempPath为模板路径 //与fieldNames对应的值 Object[] fieldValues = new object [5]; //渲染文档 doc.MailMerge.Execute(fieldNames, fieldValues); |
表格部分是这样:
//表格名称 表格列要和文档模板里的一样
DataTable headTable = new DataTable("headList");
headTable.Columns.Add("EnField");
headTable.Columns.Add("ChinaField");
headTable.Columns.Add("FieldMark");
headTable.Columns.Add("IsMust");
headTable.Columns.Add("IDNum");
表格的数据自己填充好。
1 2 | //渲染表格 doc.MailMerge.ExecuteWithRegions(headTable); |
红字是这个组件自主渲染上去的。
了解更多
https://www.cnblogs.com/guohu/p/9459327.html Word Dom结构
http://https://github.com/aspose-words/Aspose.Words-for-.NET 官方示例代码
,有个winform程序的说明书
分类:
C#
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· 【译】.NET 升级助手现在支持升级到集中式包管理
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 并发编程 - 线程同步(二)