Python_openpyxl介绍
自动化测试过程当中如今愈来愈多的须要对各类文档进行读写的操做。最经常使用的就是对txt文本,xlsx文本,csv文本进行读写操做。openpyxl就是一个对excel文本读写操做的利器。
openpyxl简介
openpyxl是一个开源项目,openpyxl模块是一个读写excel2010文档的python库,若是要处理更早期的excel文档,须要使用xlrd(只能读excel文件)模块,xlwt(只能写excel文件)模块。openpyxl是
一款既能读,又能写的综合工具,openpyxl能够读写xltm,xltx,xlsm,xlsx文件,而且能够实现跨平台
处理大量数据。
openpyxl在线安装
pip3 install openpyxl
openpyxl 引用
from openpyxl import Workbook
from openpyxl ipmort load_workbook
学习openpyxl须要掌握的基本用法
openpyxl模块中有3个不一样的类,每一个类都有不一样的属性和方法
一、Workbook: 工做簿,能够理解为excel对象
二、worksheet: 表格, 能够理解为excel中sheet对象
三、cell : 单元格,
操做步骤
一、建立一个excel或者打开一个已存在的excel,须要建立一个workbook对象
二、建立一个表或者获取一个表须要先建立workbook对象,经过workbook对象获得一个worksheet对象
三、经过worksheet对象建立cell对象 ,获取单元格里面的数据。
workbook对象
workbook对象表明一个excel文件,在操做一个excel文档以前,须要建立workbook对象
例子
from openpyxl import Workbook
wb=Workbook() #建立一个excel工做簿对象
wb.sava(filename) 建立后保存
from openpyxl import load_workbook
wb=load_workbook("test.xlsx") #读取一个已经建立过的test.xlsx文档,建立一个工做簿对象
注意点:
workbook 和load_workbook 都是建立一个工做簿对象,若是咱们是建立一个新的excel文档就用workbook类,若是是对现有excel文档进行操做,用load_workbook方法
workbook类下面的经常使用属性和方法
active:获取当前活动的Worksheet
worksheets:以列表的形式返回全部的Worksheet(表格)
read_only:判断是否以read_only模式打开Excel文档
encoding:获取文档的字符集编码
sheetnames:获取工做簿中的表(列表)
其中比较经常使用的几个
wb.active #获取当前活跃的表格,默认是第一个
wb.sheetnames #获取全部表格的名称(列表)
wb['sheet1'] #使用指定的表格
wb.remove_sheet('sheetname') #删除一个表格
wb.create_sheet('sheetname') #建立一个表格
cell中写入数据
wb=Workbook()
sheet=wb["sheet1"]
方法1
sheet["A1"]="zhangsan" 在A1单元格内写入zhangsan
方法2
sheet.cell(row=2,column=2).value=2 #2行2列写入2
在当前表单末尾添加多行数据
rows=(
(1,2,3),(4,5,6),(7,8,9)
)
for row in rows:
sheet.append(row)
wb.save("dd.xlsx")
openpyxl读取单元格
wb=load_workbook("aa.xlsx")
sheet=wb.active
a=sheet['A1'] #A1单元格复制cell对象
b=sheet['A2']
c=sheet['A3']
d=sheet.cell(row=2,column=2)
print(a.value) #cell对象获取单元格值
print(b.value)
print(c.value)
print(d.value)
读取多列数据
cells=sheet["A1":"B3"]
for c1,c2 in cells:
print("{0},{1}".format(c1.value,c2.value))
读取全部数据
for row in sheet.iter_rows(min_row=1,max_row=3,min_col=1,max_col=3):
for cell in row:
print(cell.value,end=' ')
print()
读取全部数据保存到一个列表中
rows = sheet.rows values = [] for row in rows: for cell in row: values.append(cell.value)