最近开始学习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')