我来自Matlab环境,最近,我试图深入研究python。从excel读取是Matlab通过创建COM excel组件,派生工作簿然后表单然后从中进行范围来完成的日常事务之一。很高兴看到从工作簿到工作表到单元/范围的类似方法。
所以,
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()
也给出了预期的回复。关于什么可能出错的任何建议。
答案 0 :(得分:0)
openpyxl
仅适用于Excel 2007及更高版本的格式,这些文件通常具有扩展名.xlsx
或.xlsm
。
如果您想阅读旧的.csv
格式,请使用CVS模块。
AFAIK没有Python库可以打开.csv
和更现代的.xls
resp。 .xlsx
个文件。如果您想拥有这种灵活性,您也可以使用Python中的COM与Excel进行交互。我主要使用win32com.client
,但您也可以使用comtypes.client
。