全世界大约有 10 亿人使用 Microsoft Office,DOCX 格式是在办公室之间交换文档文件的最流行的事实标准。 虽然 DOCX 是一种复杂的格式,但不少包括 ABAP 在内的开发人员,都希望手动解析它以完成更简单的任务,例如索引、转换为 TXT 和进行其他小的修改。
PDF 格式不能算是 docx 文件的竞争对手,因为 PDF 无法编辑并且它们不包含完整的文档结构,因此它们只能进行有限的本地更改,例如水印、签名等。 这就是为什么大多数业务文档都是以 DOCX 格式创建的;目前尚未存在好的替代品可以替代它。
虽然对于 Open Office XML 的ECMA 规范,有一本多达 5,000 页的庞大手册,但如果我们仅仅想通过 ABAP 语言操作 docx 文件,不需要把这 5000 页的文档全部过完。
理解该格式的最佳方法是使用 MSWord 创建一个简单的单字文档,并观察编辑文档如何更改底层 XML。
DOCX 文件是 XML 文件的 ZIP 存档。 如果您创建一个新的、空的 Microsoft Word 文档,在里面写一个单词“Test”并解压缩它的内容,您将看到以下文件结构:
尽管我们创建了一个简单的文档,但 Microsoft Word 中的保存过程已经生成了 XML 格式的默认主题、文档属性、字体表等。DOCX 中的所有文件都是 XML 文件,即使是带有“.rels”扩展名的文件也不例外。
首先,让我们删除未使用的内容并关注包含主要文本元素的 document.xml。 删除文件时,请确保已从其他 xml 文件中删除了对其的所有关系引用。 这是一个关于我如何清除对 app.xml 和 core.xml 的依赖项的代码差异示例。 如果您有任何未解决/缺失的引用,MSWord 将认为该文件已损坏。