Fork me on GitHub

【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);

红字是这个组件自主渲染上去的。
posted @   HelloLLLLL  阅读(1108)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· 【译】.NET 升级助手现在支持升级到集中式包管理
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· Tinyfox 发生重大改版
点击右上角即可分享
微信分享提示