2011-07-14 18 views
20

有誰知道從Python訪問MS Excel的方式嗎?具體而言,我正在尋找創建新工作表並填充數據,包括公式。Excel Python API

最好我想在Linux上做到這一點,如果可能的話,但如果沒有其他方式可以在VM中做到這一點。

+1

一般性意見是Office文件格式本身非常複雜,但大多數Office工具將以更簡單的格式讀取。你有沒有考慮寫一個'.csv'呢? – katrielalex

回答

28

xlwtxlrd能夠讀寫Excel文件,而無需使用Excel本身:

http://www.python-excel.org/

+1

不幸的是他們不支持公式 –

+1

@jamesj:你可以讀/寫公式。你無法評估它們。見例如https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/examples/formulas.py –

+1

謝謝,我誤解了。我以爲你只能寫他們。 –

2

它經由COM Excel對象模型是可以肯定:只要使用win32com爲Python模塊。記不住更多,但我曾經通過Python的COM控制媒體播放器。這是一塊蛋糕。

+1

我希望能在linux上做到這一點,它不會讓我訪問win32com –

+1

是的,我明白。但是,當涉及到微軟專有格式(現在開放,但實際上無用)時,最好將文檔生成和處理留給原始代碼。你總是可以找到早期版本的Excel,在Wine下運行... –

5

很長一段時間來讀/寫的Excel 2007 XLSX/XLSM文件,但最後的答案再次推它飼料的頂部。其他人可能會從我使用python和excel的經驗中受益。

我正在使用excel和python。直接使用xlrd,xlwt模塊,我通常使用熊貓。我認爲熊貓使用這些模塊作爲導入,但是我發現使用熊貓提供的框架來創建和讀取電子表格更容易。熊貓的Dataframe結構非常「像電子表格」,讓我的生活變得更加輕鬆。

我使用的其他選項(不是直接回答您的問題)是DataNitro。它允許你直接在Excel中使用python。不同的用例,但您可以在通常需要在Excel中編寫VBA代碼的地方使用它。

+0

謝謝,這兩個看起來都像是有趣的方法。我想我當時對熊貓進行了評估,但不記得我爲什麼沒有使用它。 –

+0

熊貓確實會導入'xlrd'和'xlwt'。 –