最近开始学习python,想做做简单的自动化测试,需要读写excel,然后就找到了xlrd来读取Excel文件,使用xlwt来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。
因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,还有一个xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已.
以下是示例代码:
import xlwt
import xlrd
from xlutils.copy import copy
#使用xlrd读取指定excel工作中的指定表格的值并返回
def excel_read(doc,table,x,y):
data = xlrd.open_workbook(doc)
table = data.sheet_by_name(table)
return table.cell(x,y).value
#使用xlwt创建指定excel工作中的指定表格的值并保存
def excel_create(sheet,value):
data = xlwt.Workbook()
table = data.add_sheet(sheet)
table.write(1,4,value)
data.save('demo.xls')
#三个结合操作同一个excel
rb = xlrd.open_workbook('demo.xls')
#管道作用
wb = copy(rb)
#通过get_sheet()获取的sheet有write()方法
ws = wb.get_sheet(1) #1代表是写到第几个工作表里,从0开始算是第一个。
ws.write(1, 6, 'changed!')
wb.save('demo.xls')