批量生成word文档是让人无比厌恶但有时又不得不做的事情。比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有“姓名”、“学院”和“专业”不同,其他内容都相同的word文档以供打印(事实上直接生成pdf是更好的选择,这个以后有心情可以弄一下)。
技术概述
要实现批量生成word文档的功能,其难度其实非常小,在程序实现层面上可以直接拆解为:
-
读取xlsx文档的内容
本人实现的工具将xlsx文档(Excel文档)的第一行内容定义为word文档中需要被替换的内容,后面每一行对应的内容则为要替换的内容。也就是第一行每一列的内容都会被后面一行同列的内容替换,然后生成一个新的word文档。
这一部分的技术细节可见OpenXML库(office文档读写库)的安装这篇文章。
-
识别word文档中的特定字段并将其替换为目标字段
这一部分其实没啥好说的,任务非常明确,具体的技术细节见使用OpenXML库替换docx文档(Word文档)中的特定字段这篇文章。
-
整合上述两个功能
因为上述两个功能用到了OpenXML库,这个库在C#上的调用比较方便,因此本人选择使用wpf框架开发软件界面并将上述两个功能进行整合,最终得到如下软件:
到此关于程序实现的简要介绍就完结了,想要了解更多细节的同学可以到项目的git上去看源码,这里不表。
项目地址
https://gitcode.net/oHanTanYanYing/auto_office
软件下载
https://gitcode.net/oHanTanYanYing/auto_office