使用xlrd和xlwt编辑现有的Excel工作簿和工作表。
使用xlrd和xlwt编辑现有的Excel工作簿和工作表。
在xlrd
和xlwt
的文档中,我学到了以下内容:
如何从现有的工作簿/工作表中读取:
from xlrd import open_workbook wb = open_workbook("ex.xls") s = wb.sheet_by_index(0) print s.cell(0,0).value #打印出名为ex.xls的文档中的第一个工作表中a1位置的单元格内容
如何创建新的工作簿/工作表:
from xlwt import Workbook wb = Workbook() Sheet1 = wb.add_sheet('Sheet1') Sheet1.write(0,0,'Hello') wb.save('ex.xls') #创建一个名为ex.xls的文档,其中包含一个名为"Sheet1"的工作表,并将"Hello"写入a1单元格
现在我想要做的是打开一个现有的工作表,在一个现有的工作簿中,并向该工作表中写入内容。
我尝试了以下代码:
from xlwt import open_workbook wb = open_workbook("ex.xls") s = wb.sheet_by_index(0) print s.cell(0,0).value
但是open_workbook
只是xlrd
模块的一部分,而不是xlwt
模块。
有什么想法吗?
编辑1:
在Oliver的建议下,我研究了xlutils
并尝试了以下代码:
from xlrd import open_workbook from xlwt import Workbook from xlutils.copy import copy wb = open_workbook("names.xls") s = wb.get_sheet(0) s.write(0,0,'A1') wb.save('names.xls')
然而,这给我返回了以下错误信息:
File "C:\Python27\lib\site-packages\xlrd\book.py", line 655, in get_sheet raise XLRDError("Can't load sheets after releasing resources.") xlrd.biffh.XLRDError: Can't load sheets after releasing resources.
编辑2:
错误信息是由于错误使用get_sheet
函数导致的。
最终找到了正确的用法:
from xlrd import open_workbook from xlwt import Workbook from xlutils.copy import copy rb = open_workbook("names.xls") wb = copy(rb) s = wb.get_sheet(0) s.write(0,0,'A1') wb.save('names.xls')