2012-06-01 125 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