2012-10-05 66 views
1

我來自Matlab環境,最近試圖潛入python。從excel中讀取是matlab通過創建COM excel組件,派生工作簿,然後表單然後範圍從而實現的更重要的日常事情之一。很高興看到從工作簿到工作表到單元/範圍的類似方法。Openpyxl單元值不來

所以,

w = openpyxl.load_workbook('D:/ass.csv') 
s = w.get_sheet_by_name('Sheet1') 
c = s.cell('a2') 

最後:c.value應該給我的價值,並c.value = 12應該賦值。兩者似乎都沒有發生。但是,一旦我分配了c.value = 12,那麼進一步調用c.value會給我12,儘管在底層csv中沒有發生變化。

當我嘗試像s.get_highest_column()這樣的東西時,我得到了正確的預期答案。 w.get_sheet_names()也給出了預期的響應。任何可能出錯的建議。

+1

您是否保存工作表?這是關鍵的一步。如果您沒有明確保存工作簿,則更改將不會反映在底層文件中。 –

+0

1)訪問表中的數據不工作2)我做了w.save(),但仍然沒有效果。正如所說的,w和s對象確實在屬性中表現得很好,我查看了w.getsheetnames,s.gethighestcolumn,但是cell.value不起作用。實際上,我想知道是否有任何單元對象屬性或方法正在工作。 – user1131925

回答

0

openpyxl只適用於Excel 2007及更高版本的格式,文件通常有擴展名.xlsx.xlsm

如果要讀取舊的.csv格式,請使用CVS模塊。

AFAIK沒有Python庫會打開.csv和更現代的.xls resp。 .xlsx文件。如果你想擁有這種靈活性,你也可以使用Python中的COM與Excel進行交互。我主要使用win32com.client,但您也可以使用comtypes.client

相關問題