项目需求:
根据数据库、文件来生成Word docx形式的报告,目录已经提前制作好,现在需要根据实际的报告内容来自动更新Word域。
方法:
首先要了解docx,docx是office2007之后的版本使用的,docx格式的文件本质上是一个zip文件,主要内容是保存为XML格式的,因此可以通过修改Word背后的XML文件来设置自动更新域。
1. 将Word后缀从"docx"改成"zip",解压
2.将解压后的文件夹下的/word/settings.xml文件修改, 在文件末尾添加 <w:updateFields/>,注意XML文件的层次
3. 保存之后,压缩回zip文件,将zip后缀名改成"docx" 第一次打开文件的时候会提示是否需要更新域。
限制:
1. 此方法仅支持office2010以上版本,不支持office2007以及WPS。
2. 如果按照以上方法修改后,打开Word文件提示文件已损坏时,可能会是Word解压后再次压缩会出现问题,因此需要避免解压压缩, 可以将修改后的settings.xml复制一份出来,直接替换掉zip文件的settings.xml,修改后缀名后再次打开Word就不会有问题。