当前位置: 首页> 技术文章> python-openpyxl模块-多测师

python-openpyxl模块-多测师

Python_openpyxl介绍

自动化测试过程中现在越来越多的需要对各种文档进行读写的操作。最常用的就是对txt文本,xlsx文本,csv文本进行读写操作。openpyxl就是一个对excel文本读写操作的利器。

openpyxl是一个开源项目,openpyxl模块是一个读写excel2010文档的python库,如果要处理更早期的excel文档,需要使用xlrd(只能读excel文件)模块,xlwt(只能写excel文件)模块。openpyxl是一款既能读,又能写的综合工具,openpyxl可以读写xltm,xltx,xlsm,xlsx文件,并且可以实现跨平台处理大量数据。

openpyxl在线安装       pip3 install openpyxl

openpyxl 引用     1、from  openpyxl  import   Workbook   2、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对象代表一个excel文件,在操作一个excel文档之前,需要创建workbook对象

例子

from openpyxl  import Workbook

1、wb=Workbook() #创建一个excel工作簿对象     2、 wb.sava(filename)  创建后保存

from openpyxl  import load_workbook

1、wb=load_workbook("test.xlsx")  #读取一个已经创建过的test.xlsx文档,创建一个工作簿对象   2、workbook 和load_workbook  都是创建一个工作簿对象,如果我们是创建一个新的excel文档就用workbook类,如果是对现有excel文档进行操作,用load_workbook方法

workbook类下面的常用属性和方法

active:获取当前活动的Worksheet  worksheets:以列表的形式返回所有的Worksheet(表格)    read_only:判断是否以read_only模式打开Excel文档  encoding:获取文档的字符集编码    sheetnames:获取工作簿中的表(列表)

其中比较常用的几个

1、wb.active    #获取当前活跃的表格,默认是第一个 2、wb.sheetnames   #获取所有表格的名称(列表)3、wb['sheet1']  #使用指定的表格

4、wb.remove_sheet('sheetname')   #删除一个表格 5、wb.create_sheet('sheetname')    #创建一个表格 

cell中写入数据   1、wb=Workbook()  2、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对象

d=sheet.cell(row=2,column=2)

print(a.value)  #cell对象获取单元格值

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)

上一篇: 杭州2班团建分享---这个冬天不太冷

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊