读写DOCX文件

时间:2014-08-10 18:26:55

标签: javascript python c++ ms-word docx

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

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

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

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

然后我想到尝试使用Windows办公室"邮件合并"功能,但我以前从未这样做过。

我想知道是否有人建议您从一个docx文件导入数据并将标签生成到另一个docx文件中。

我愿意接受任何建议。

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

2 个答案:

答案 0 :(得分:1)

  1. 我所知道的唯一开源(可能更容易获得)的解决方案是:
  2. http://poi.apache.org/

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

    在速度方面,这是一个不错的选择,它是免费软件。

    但是如果你打开一个文件,改变它并再次保存 - 结果可能是不稳定的:格式化可能稍微偏离。至少在我与pptx对手的测试中。

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

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

    1. 你也可以采用C#/ Redmond方式:How do I create the .docx document with Microsoft.Office.Interop.Word?
    2. Interop(上面问题的第一个答案中的第二个例子)方式在格式化准确性方面给出了最好的结果。基本上,当您使用Interop打开文件时 - 更改和保存时它看起来会一样。但是在与用户交互时不能使用它 - 因为它启动了一个单独的MS Office进程 - 我不会依赖于我自己的用户体验。但是,如果您想在单个用户会话中批量生成这些文件 - 它将产生良好的结果。

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

答案 1 :(得分:0)