2012-06-01 90 views
0

我们有一个python的项目与Django。 我们需要生成复杂的 word,excel和pdf文件。从python创建office文件

对于我们在PHP中完成的其余项目,我们使用PHPexcel, PHPWord和tcpdf作为PDF。

你会推荐哪些用于创建这种文件的python库? (用于Excel和Word的imortant使用Open XML文件格式XLSX,DOCX)

回答

1

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

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

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

+0

与PHPword相比,Python-docx缺少很多功能。像自定义页眉和页脚,我没有找到任何好的文件。 – Revelation

+0

@启示它的工作很简单(例子很好),但是非常有限。这就是为什么我推荐Java解决方案。如果你坚持,我愿意许可我已经有的代码,因为不是很多(字汇报告,你可以集成其他功能)。 – Marcin

+0

您认为可以使用php/java库创建文件并将数据作为参数以xml/json格式传递吗?使用这种服务似乎矫枉过正。 – Revelation

0

我从来没有使用过这方面的任何库,但你可以xlsx文件更改任何docx的延伸,zip,看魔术!

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

+0

我知道,但我们需要生成复杂的文档,所以这是不容置疑的。无论如何感谢 – Revelation

0

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

+0

为pdf文件,我们发现很多o的图书馆都没问题。我们需要更多的办公文件帮助。 – Revelation

1

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

+0

我们已经发现,但它缺少很多来自原始PHPexcel的功能 – Revelation

1

我会推荐使用Docutils。它需要reStructuredText文件并将它们转换为一系列输出文件。该软件包中包含HTML,LaTeX和.odf文件编写器,但在sandbox中有其他编写器用于写入其他格式的全部负载,请参阅WordML编写器(免责声明:我没有使用它)

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

虽然不是Python解决方案,但您也应该查看一个Haskell库,该库比docutils支持更多的输出和输入格式的许多。 Pandoc对Docutils的一个主要优势是可以进行反向转换,即将WordML转换为reStructuredText。你可以尝试Pandoc here