2011-01-20 64 views
11

我正在使用python,我想讀取* .ods文件並將其轉換爲python字典。電子表格到Python字典的轉換

該鍵將是第一列值,該值將是第二列值。

我該怎麼辦呢?我使用xlrd,但它不讀取* .ods文件。

+3

http://pypi.python.org/pypi/ezodf或http://udk.openoffice.org/python/python-bridge.html – marcog 2011-01-20 08:56:41

+0

@marcog:此評論應該是一個答案。 – 2011-01-20 09:19:26

+1

@Space我只是放棄了我沒有真正閱讀過的可能性,所以我不覺得這是一個完整的答案。 – marcog 2011-01-20 09:24:37

回答

2

您可以先將.ODS轉換爲csv嗎?然後使用csv模塊使用Python解析CSV非常簡單。

+0

謝謝,但據我所知,只有將ods轉換爲cvs的方式是開放式辦公服務。但我不想使用它。我可以直接將它轉換成字典 – 2011-01-20 09:03:33

4

一些可用的選項:

  • pyexcel-odspip install pyexcel-ods: 「包裝庫讀取,處理和消耗臭氧層物質的格式寫入數據」 可以通過安裝。我個人推薦這個包,因爲我已經使用它,它正在積極維護。

  • py-odftools:「...的工具,在ISO標準的OpenDocument格式解析,轉換和創建文件集」 這個項目一直沒有更新自2007年底它看起來拋棄。

  • ezodf: 「Python包創建/操縱OpenDocumentFormat文件。」 通過pip install ezodf可安裝。請在下面的評論中注意關於這個軟件包的嚴重問題的警告。

3

雖然您可以要求您的用戶使用文件>另存爲(您可能知道),但這可能對您的情況沒有幫助。

使用libre/openoffice服務可能更容易。它可以在服務器上完全無人運行,而無需安裝或運行X11,這將爲您提供乾淨的本地轉換。

libreoffice --without-x --convert-to csv filename.ods 

有關詳細信息,請查閱libreoffice --help(或openoffice --help)。這也可以包含在os.system(),subprocess。*()等中(注意:在Windows上使用-convert-to)。另請注意:您不能運行任何 Libre/Open/Star辦公室,包括快速入門者。

更新:使用LibreOffice的早期版本 - 無頭版而不是--without-x。