只是想知道是否有人有阅读 Microsoft Word 文档并以编程方式(基于标题)删除某些段落和 block 的经验
有没有人知道任何图书馆可以用我熟悉的一种语言来做到这一点:
- python
- PHP
- C#
- Java
我用谷歌搜索了一些,大多数似乎都能够读写文档(及其部分),但似乎没有涵盖迭代当前标题的列表。如果我可以获得一个列表作为对象(或类似的东西),那么我可以专门删除我想要的内容。
这样做的主要目的是我有一个包含大量信息的大型模板文档,但只需要某些部分,为每个文档挑选和选择,所以我打算构建一个小型前端来动态生成这些文档。
正如您将在上图中看到的,删除“Mutts”标题 2 项将删除红色框中的所有内容,如果可以使用任何预先编写的库,那将是惊人的,我不会深入研究 XML。
如果可能的话,我也宁愿不必使用 COM(组件对象模型),但如果涉及到这一点,我可能会使用 Python for Windows Extensions。
非常感谢你们能提供的任何帮助。
最佳答案
我将此作为答案发布,因为有太多信息无法发表评论。考虑到这一点,这不会真的回答您的问题。对于看起来像这样的 word 文档:
标题 1
东西
东西
东西
标题 2
其他内容
其他内容
其他内容
生成的 xml,去掉了属性和不必要的元素,看起来像这样:
<?xml encoding="UTF-8"?>
<w:document>
<w:body>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>Heading 1</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Stuff</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Stuff</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Stuff</w:t>
</w:r>
</w:p>
<w:p/>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>Heading 2</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Other stuff</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Other stuff</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>Other stuff</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
因此,每个标题下方的“内容”并未真正包含在标题内。我使用的 API 中没有一个对于迭代现有文档非常有用。即使您可以检索标题列表,您也需要获取该标题和下一个标题之间的所有段落。话虽这么说,但我不确定是否有一个好的图书馆可以做到这一点。
我之前使用过 Python 的 docx
模块来创建文档,这需要一些时间来适应。通常,您可能想要考虑一种加法(创建您需要的 header )而不是一种减法(删除您不需要的 header )。此外,仅供引用,可以通过将 .docx
文件重命名为 .zip
来探索它们。
关于php - Microsoft Word 自动化 - 以编程方式删除标题(及其子 indo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35020199/