python-openpyxl模块介绍,从xlsx文件中读写数据

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个不同的类,每个类都有不同的属性和方法
1、Workbook: 工作簿,可以理解为excel对象
2、worksheet: 表格, 可以理解为excel中sheet对象
3、cell : 单元格,
 
操作步骤
1、创建一个excel或者打开一个已存在的excel,需要创建一个workbook对象
2、创建一个表或者获取一个表需要先创建workbook对象,通过workbook对象得到一个worksheet对象
3、通过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)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2020-12-25 14:56  多测师_谢sir  阅读(618)  评论(0编辑  收藏  举报