安装方式:pip install openpyxl
一.Excel中的三大对象
- WorkBook:工作簿对象
- Sheet:表单对象
- Cell:表格对象
二、openpyxl对Excel的操作
- 创建一个工作薄:wb = openpyxl.Workbook()
- 新增一个sheet表单:wb.create_sheet('test_case')
- 保存case.xlsx文件:wb.save('cases.xlsx')
- 打开工作簿:wb = openpyxl.load_workbook('cases.xlsx')
- 选取表单:sh = wb['Sheet1']
- 读取第一行、第一列的数据:ce = sh.cell(row = 1,column = 1)
- 按行读取所有行数据:row_data = list(sh.rows)
- 关闭工作薄:wb.close()
- 按列读取所有列数据:columns_data = list(sh.columns)
- 写入数据之前,该文件一定要处于关闭状态
- 写入第一行、第四列的数据 sh.cell(row = 1,column = 4,value = 'result')
- 写入数据后,要保存文件,不然数据不会存入Excel ,wb.save('hero.xlsx')
- 获取最大行总数、最大列总数:sh.max_row、sh.max_column
- del 删除表单的用法:del wb['sheet_name']
- remove 删除表单的用法:sh = wb['sheet_name'] wb.remove(sh)
import openpyxl
# Excel写入文件,写入或读取excel要是关闭状态,不然会报错
# 多次执行代码,写入的新内容会覆盖老的
# 创建一个工作簿,即创建一个空的Excel文件
wk = openpyxl.Workbook()
# 调用Excel中的sheet页,默认第一个
sheet = wk.active
# 给sheet页命名
sheet.title = '测试用例'
# 新增一个sheet页,sheet页是个列表,要记得写索引
wk.create_sheet("testcase", 1)
# 给单元格A1写入内容
sheet['A1'] = '钢铁侠'
# 列表数据写入excel
row = ['太极', '张三丰', '张无忌']
sheet.append(row)
# 向excel中写入多行内容
rows = [['曹操', '夏侯渊', '典韦'], ['刘备', '张飞', '关羽']]
for r in rows:
sheet.append(r)
# 写入第4行、第3列的数据
sheet.cell(row=4, column=3, value='result')
# 保存文件,并命名为hero.xlsx,写入数据后,要保存文件,不然数据不会存入Excel
wk.save('hero.xlsx')
# 读取excel的数据
# 读取hero.xlsx,创建文件对象wb
wb = openpyxl.load_workbook("hero.xlsx")
# 获取Excel中的工作页名称
names = wb.sheetnames
print(names)
# 根据工作页名称调用目标sheet页
sheet = wb['测试用例']
# 读取sheet中的A1格对象
content = sheet['A1']
# 读取对象的属性值
con_A1 = content.value
print(con_A1)
# 读取第二行、第一列的数据
ce = sheet.cell(row=2, column=1)
print(ce.value)
# 按行读取数据
list_data = list(sheet.rows)
for cases in list_data:
case_id = cases[0].value
case_excepted = cases[1].value
case_data = cases[2].value
print(case_id, case_excepted, case_data)
print('..................')
# 按列读取数据
columns_data = list(sheet.columns)
for columns in columns_data:
column_id = columns[0].value
column_excepted = columns[1].value
column_data = columns[2].value
colum_4=columns[3].value
print(column_id, column_excepted, column_data,colum_4)
# 关闭工作簿对象,
wb.close()
import openpyxl
import time
# 读取excel的数据
# 读取login.xlsx,把用户名和密码组成字典
def getExcel_Data():
# 读取Excel文件
wb = openpyxl.load_workbook("login.xlsx")
# 获取文件中的sheet页
sheet2 = wb['测试用例']
# sheet2.cell(row=, column= )
# 获取当前sheet页的最大行数
rows = sheet2.max_row
# 获取当前sheet页最大列数
cols = sheet2.max_column
data = []
for r in range(2, rows + 1):
dict = {}
for c in range(1, cols + 1):
# print(c)
time.sleep(1)
# 获取了每个单元格
cell = sheet2.cell(r, c)
# 获取单元格的值
val = cell.value
# 把第一行当做字典的键key
key = sheet2.cell(1, c).value
dict[key] = val
# 把字典添加到列表中
data.append(dict)
print(data)
getExcel_Data()
执行结果
"C:\Program Files\Python37\python.exe" E:/PycharmProjects/lovetest/testcase/readexcel_case.py
[{'username': '太极', 'password': '张三丰'}, {'username': '曹操', 'password': '夏侯渊'}, {'username': '刘备', 'password': '张飞'}]
Process finished with exit code 0