测试时经常需要从excel中读取数据,那么怎么从excel中读取到数据呢?
这就需要用到openpyxl库了,需要注意的是,这个库只能读取xlsx的excel。
打开excel:
wb = openpyxl.load_workbook('test_case_data.xlsx')
获取excel中的所有sheet名:
wb.sheetnames
注意,这里得到的是各个sheet的名字列表,并不是sheet对象列表
获取excel中的sheet对象
wb.active() #获取当前打开的sheet对象
wb['sheetname'] #通过sheetname获取对象
wb.get_sheet_by_name('sheetname') #同上
wb.worksheets[0] #通过sheet列表索引获取对象
获取sheet中的单元格对象
cell = sheet.cell(row,col) #传入行列,注意:行列是从1开始,不是从0开始
注意:上面获取的是单元格对象,并不是单元格里的值
如果要获取单元格中的值,需要用value这个参数
value = cell.value
我们可以通过sheet的rows或者columns按照每行或者每列获取整个sheet的单元格对象,
需要注意的是,返回的是一个生成器对象,需要用list方法转换成列表才能得到单元格对象
for row in list(sheet.rows): #先将生成器转换成列表,循环每一行
for cell in row: #再获取每一行的单元格对象
print(cell.value) #输出每一个单元格的值
将值写入单元格:
cell.value = 'value'
然后是保存/另存:
wb.save('path\test_data.xlsx')
最后就是关闭
wb.close()