代码操作Word时,自动更新目录-word2007大坑

项目需求:

       根据数据库、文件来生成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就不会有问题。

猜你喜欢

转载自blog.csdn.net/weixin_42670653/article/details/81476147
今日推荐