程序生成word文件后,如何自动刷新目录

需求如题所述。
按照以往的经验,尝试通过录制宏来获得对应的函数,但失败了,刷新目录没有对应的宏操作!
百度搜到一个方案(手工修改word背后的XML文件),试了可行,
https://www.cnblogs.com/zhixin9001/p/5587322.html (以下截图来自此网页)
1、将.docx后缀改为.zip
2、解压zip文件获得一组文件
3、修改word/setting.xml文件,在末尾加上一句 <w:updateFields w:val=“true”/>
在这里插入图片描述
4、修改word/document.xml文件,找到目录所在的部分,不好找可以搜索fldChar(fldChar就是跟域相关的标签)。模板中的每条目录都被包围在w:hyperlink标签之中,找到首位hyperlink标签并删除,最终目录部分只留下这样的
在这里插入图片描述
比如我本地一个文件就是把 <w:hyperlink …> … </w:hyperlink> 之间的删掉即可。

5、以上修改保存后,重新压缩为.zip文件,改回.docx文件。打开时就会提醒是否更新目录,选是即可。选否的话,下次打开还会被提醒是否刷新目录。

不过以上方案只解决了部分问题,未能解决程序打开docx,填写内容后刷新问题,估计是程序打开docx时就已经默认刷新目录了,填写内容后,目录还是没办法刷新。

剩下的思路就是,直接程序改写docx中的xml文件。
https://docs.microsoft.com/en-us/office/open-xml/open-xml-sdk
Open XML可以有空时再研究,应该是一个终极解决方案,毕竟zip、xml、OOXML都是公开的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值