2012-09-23 50 views
4

我試圖用python創建工作簿,我需要測試不同單元格的值來填充它,但我遇到了一些麻煩。 我使用xlrd and xlwt來創建和編輯excel文件。xlrd和xlwt是否兼容?

我做了一個我的問題的例子,我不明白爲什麼它不工作。

import xlwt 
import xlrd 
wb = xlwt.Workbook() 
ws = wb.add_sheet('Test') 
ws.write(0,0,"ah") 
cell = ws.cell(0,0) # AttributeError: 'Worksheet' object has no attribute 'cell' 
print cell.value 

我曾想當然地認爲,xlrdxlwt共用,可以互相交流類,但它似乎並不如此。如何獲取打開的Worksheet對象的單元格值?

+0

一件事是嘗試打印'目錄(WS)',看看有什麼方法/屬性的類有。沒有看起來像他們獲得細胞價值(肯定有辦法做到這一點,而不保存,然後用xlrd重新打開)。 –

回答

2

根據我的理解,xlwt和xlrd模塊是分開的,用於將整本書讀入內存,或將內存中的日期寫入文件。如果你打算使用這兩個模塊,我相信你必須這樣做:

1)將整個現有文件讀入內存。 (xlrd) 2)編輯內存中的工作簿 3)寫出工作簿。 (xlwt)

換句話說,它們不能互換使用。雖然這是一個名爲'openpyxl'的模塊,但它可以讓你創建對象並在運行期間按照上面的方式操作它們。

鏈接:http://packages.python.org/openpyxl/

+1

還有另外一個軟件包'xlutils',它是'xlrd'和'xlwt'之間的橋樑。對於那些需要使用.xls的人來說,這個組合可能是最好的選擇。 'openpyxl'不能處理.xls。 –