在Word 2016外接程序中使用body.getOoxml()并不包括编号包部分。这会导致在执行insertooxml()时出错,因为API会创建新的编号定义,这些定义是错误的或默认的(如1、2、3等)。因此,具有其他逻辑的编号,如小写字母或罗马字母,在执行insertooxml()时将被重新设置为标准。
这适用于Word 2016 MSO,它仍然在外接程序中使用IE 11。(我们对此无能为力)。在词的M365中,它正确地工作。使用中的单词版本为16.0.5369.1000 MSO 16.0.5366.1000 32位(运行在Windows 10上)我们目前使用Office版本1.1.82 (最新版本1.1.83-custom.0有一个错误,在Word 2016中插入on引发异常)
我们需要这个解决方案,从word文档中删除敏感数据。由于Word Js Api 1.1不包括超链接,我们需要操作ooxml来修复超链接。
重新创建的步骤:
var body = context.document.body;
var body_ooxml = body.getOoxml();
await context.sync();
var body_ooxml_value = body_ooxml.value;
body.insertOoxml(body_ooxml_value, Word.InsertLocation.replace);
await context.sync();我所期望的:
当前的发现I做了几次测试,发现在Word 2016 MSO中,getOOXML不返回编号--尽管文件numbering.xml存在并且是正确的。在执行insertOoxml之后,似乎api试图从头开始重新创建编号,这导致了numbering.xml中包含标准编号(1、2、3)的覆盖。
我看不出有什么解决办法(但对任何建议都很满意),.This似乎是一个产品缺陷,需要修复。
发布于 2022-11-30 19:06:08
只是FYI,以防你不知道:微软不再需要在通过AppSource发布的外接程序中支持IE。尽管如此,它似乎确实是一个bug,因此您可以在office-js回购上创建一个bug问题。但是我不认为旧版本的Office版本中的bug会有很高的优先级。
https://stackoverflow.com/questions/74624621
复制相似问题