安装方式: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()

python openpyxl 插入行数 openpyxl写入excel多行_数据

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