关于getOoxml()获取文档XML时缺失numbering.xml的技术问询
解决getOoxml()获取XML时缺少numbering.xml的问题
我之前也碰到过一模一样的问题,核心原因很明确:你当前调用的body.getOoxml()只能获取正文区域的OOXML片段,而编号规则这类文档级的配置资源(也就是numbering.xml)属于Word文档的根级部件,并不在body的范围内。
你提到能看到styles.xml、fontTable.xml这些文件,其实是因为正文内容直接引用到了这些样式/字体定义,所以片段里顺带包含了相关部分,但编号的定义文件numbering.xml是文档全局的,不会被包含在body的OOXML片段里。
修正方案
要获取包含所有文档部件(包括numbering.xml)的完整OOXML包,你需要调用文档级的getOoxml()方法,而不是body的:
Word.run(function (context) { var doc = context.document; var contentXML = doc.getOoxml(); return context.sync().then(function () { console.log("Full document OOXML contents: " + contentXML.value); }); })
补充说明
context.document.getOoxml()会返回整个Word文档的完整OOXML结构,其中包含了word/numbering.xml、word/styles.xml、word/fontTable.xml等所有必需的部件- 用这个方法获取的OOXML进行文档重建时,编号格式就能正常被解析和还原了
内容的提问来源于stack exchange,提问作者Mariam Samy
相关产品推荐
相关产品推荐

