从python创建office文件

时间:2012-06-01 11:20:11

标签: python excel ms-word report

我们在django的python中有一个项目。 我们需要生成复杂字,excel和pdf文件。

对于我们在PHP中完成的其他项目,我们使用了PHPexcel PHPWord和tcpdf for PDF。

您建议使用哪些python库来创建此类文件? (对于excel和word来说,它非常重要,使用开放的xml文件格式xlsx,docx)

5 个答案:

答案 0 :(得分:1)

Python-docx可能有所帮助(https://github.com/mikemaccana/python-docx)。

Python没有高度开发的工具来操纵word文档。我发现java库xdocreport(https://code.google.com/p/xdocreport/)是Word报告的最佳选择。因为我需要生成PCL,这是通过FOP高效完成的,我也使用docx4j。

为了将它与我的python集成,我使用spark框架将其包装起来,使用简单的Web服务,并在python端使用requests与服务进行通信。

答案 1 :(得分:1)

对于excel,有openpyxl,它实际上是PHPexcel的python端口,afaik。我还没有使用它,但对我来说听起来还不错。

答案 2 :(得分:1)

我建议使用Docutils。它需要reStructuredText文件并将它们转换为一系列输出文件。包中包含HTML,LaTeX和.odf文件编写器,但在sandbox中有大量其他编写器用于写入其他格式,例如,参见WordML writer (免责声明:我没有使用过它)

此解决方案的优点是您可以编写纯文本(reStructuredText)主文件,这些文件是人类可读的,然后根据需要转换为一系列其他文件格式。

虽然不是Python解决方案,但您还应该查看Pandoc一个Haskell库,该库支持 更广泛的输出和输入格式而不是docutils。 Pandoc优于Docutils的一个主要优点是您可以进行反向转换,即WordML到reStructuredText。您可以尝试Pandoc here

答案 3 :(得分:0)

我从来没有使用任何库,但您可以将任何docxxlsx文件的扩展名更改为zip,并看到魔法!

生成openxml文件就像生成几个XML文件(您可以使用模板)并压缩它一样简单。

答案 4 :(得分:0)

生成PDF的最简单方法是生成HTML(带有CSS +图像)并使用wkhtmltopdf工具进行转换。