javascript - 读写 DOCX 文件

标签 javascript python c++ ms-word docx

我正在使用 2 个 docx 文件。一个 docx 文件包含产品的文本信息(起始序列号、长度、宽度和高度)。另一个 docx 文件包含带有图像的贴纸标签以及第一个文件中的所有文本信息。

这就是我目前所做的: 我打开第一个 docx 文件并复制所有文本信息(序列号、长度、宽度和高度) 然后,我将每个信息粘贴到包含格式化标签的第二个 docx 文件中。 如果我需要制作多个标签,我会复制标签并将序列号加 1。

为不同的产品制作多个标签需要花费大量时间。我的目标是想出一种更简单的方法来从一个 docx 中获取数据并将其注入(inject)另一个 docx 中。此外,在需要时生成更多标签。

我的第一个想法是提取 docx 文件以获取它的 xml 内容。然后使用 javascript、c++ 或任何其他语言读取数据。然后要求用户输入要生成的标签数量,操作 xml,并将其重新打包为 docx 文件。

然后我就想到尝试使用windows office的“邮件合并”功能,但是我以前从来没有这样做过。

我想知道是否有人对一种简单的解决方案有任何建议,可以从一个 docx 文件导入数据并将标签生成到另一个文件中。

我愿意接受任何建议。

另外,我不是专业程序员。我是一名计算机工程本科生,在 c、c++、java、javascript、python、MIPS 汇编和 php 方面有一些经验。

最佳答案

  1. 我所知道的唯一开源(并且可能更容易获得)解决方案是:

http://poi.apache.org/

http://poi.apache.org/document/quick-guide-xwpf.html

就速度而言,这是一个不错的选择,而且它是免费软件。

但是,如果您打开一个文件,对其进行更改并再次保存 - 结果可能会很不稳定:格式可能会略有偏差。至少在我对 pptx 对应部分的测试中是这样。

我认为当您进行用户交互(网页?)来创建文档时,您可以围绕该库构建一个小型 HTTP Api。

还有:http://www.docx4java.org/trac/docx4j - 我还没有测试过。

  • 您还可以采用 C#/Redmond 方式:How do I create the .docx document with Microsoft.Office.Interop.Word?
  • 就格式的准确性而言,互操作(上述问题第一个答案中的第二个示例)方式给出了最佳结果。基本上,当您使用 Interop 打开文件时 - 当您更改并保存它时,它看起来会是一样的。但在与用户交互时不能使用它 - 因为它会启动一个单独的 MS Office 进程 - 从我自己的用户体验来看,我不会指望这一点。但是,如果您想在单个用户 session 中批量生成这些文件 - 它将提供良好的结果。

    我无法评论上述问题中描述的“OpenXML SDK”库。

    关于javascript - 读写 DOCX 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231724/

    相关文章:

    python - 如何将 url 与 django urlconf 匹配?

    c++ - 如何在 header 中公开引用变量?

    c++ - 无需按 ENTER 键即可从 STDIN 读取

    c++ - 从文件中读取字符串并转换为 bitset<12>

    javascript - 修改导航中的jQuery滑动下划线

    javascript - javascript中typeof的用法是什么?

    javascript - 模块构建失败 : Error: write EPIPE (or make processCssUrls:false) in css imports Laravel Mix

    java - 如何在 Mac 上从 Java 运行 Python3 文件

    python - 是否可以在 Python 中使用一条 .append 语句将多个单独的元素添加到列表中?

    javascript - 按顺序从键/值对对象中打印出值