从python创buildoffice文件
我们有一个Django的python项目。 我们需要生成复杂的单词,excel和pdf文件。
对于我们在PHP中完成的其余项目,我们使用PHPexcel , PHPWord和tcpdf作为PDF。
python的什么库,你会build议创build这种文件? (对于excel和word来说,它使用开放的xml文件格式xlsx,docx)
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
来与服务交谈。
对于excel,有一个openpyxl ,它实际上是PHPexcel的一个python端口afaik。 我还没有用过,但是对我来说听起来不错。
我会推荐使用Docutils 。 它需要reStructuredText文件并将其转换为一系列的输出文件。 包中包含HTML,LaTeX和.odf文件编写器,但是在沙盒中,有其他编写器用于写入其他格式的整个负载,请参阅WordML编写器(免责声明:我没有使用它) 。
这个解决scheme的优点是你可以编写纯文本(reStructuredText)主文件,这些文件是人类可读的,然后根据需要转换成其他文件格式的范围。
虽然不是Python解决scheme,但您还应该看看Pandoc是一个Haskell库,它支持比docutils更广泛的输出和input格式。 Pandoc与Docutils相比的一个主要优点是可以进行反向翻译,即将WordML转换为reStructuredText。 你可以在这里试试Pandoc。
我从来没有用过任何库,但是你可以把任何docx
, xlsx
文件的扩展名改为zip
,然后看看这个魔术!
生成openxml文件就像生成几个XML文件(可以使用模板)并将其压缩一样简单。
生成PDF最简单的方法是生成HTML(使用CSS +图像),并使用wkhtmltopdf
工具进行转换。