首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Word 2016 MSO中的body.getOoxml()缺少编号

Word 2016 MSO中的body.getOoxml()缺少编号
EN

Stack Overflow用户
提问于 2022-11-30 08:10:52
回答 1查看 19关注 0票数 0

在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来修复超链接。

重新创建的步骤:

  • 创建一个新的word文档
  • 添加一个或两个标题
  • 将标题编号改为"a,b,c“
  • 在外接程序中执行以下代码:
代码语言:javascript
复制
     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似乎是一个产品缺陷,需要修复。

EN

回答 1

Stack Overflow用户

发布于 2022-11-30 19:06:08

只是FYI,以防你不知道:微软不再需要在通过AppSource发布的外接程序中支持IE。尽管如此,它似乎确实是一个bug,因此您可以在office-js回购上创建一个bug问题。但是我不认为旧版本的Office版本中的bug会有很高的优先级。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74624621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档