python中的openpyxl模块

一 python对excel编辑的第三方库

          2010版本以下的excel,支持用xlrd 读取,xlwt 编辑,xlutils 复制

        2010版本及以上版本excel,支持用openpyxl 读取及编辑

        pandas 一般用于数据的分析

二 openpyxl模块的基本应用

        1.安装 pip install openpyxl

        2. 在pyCharm中找到interpreter点击+,输入openpyxl→install package即可

        2.openpyxl模块的三大组件:1)工作簿,2)工作表, 3)单元格

三 对excel常用的操作

1. 读取excel

import openpyxl

def read_excel(path):
    """读取excel,工作簿——→工作表——→单元格"""
    # 获取工作簿
    workbook = openpyxl.load_workbook(path)
    # 获取工作表
    worksheet = workbook["Sheet1"]
    # 获取单元格数据(行和列均从1开始)
    data = worksheet.cell(1, 2).value
    # print(data)
    # 获取最大行
    rows = worksheet.max_row
    print(rows)
    # 获取最大列
    cols = worksheet.max_column
    print(cols)
    # 获取所有数据,并将数据用字典列表的形式储存[{'id':1,'username':"","passwd":''},{},{}]
    datas = []
    # 循环每一行的数据
    for row in range(2, rows+1):   # 从第二行开始取值
        data_dict = {}             
        # 循环每一列的数据
        for col in range(1, cols+1):
            key = worksheet.cell(1, col).value         #第一行的数据做为key
            value = worksheet.cell(row, col).value     #其余行的数据作为value
            data_dict[key] = value
        # print(data_dict)
        datas.append(data_dict)
    print(datas)

2. 获取所有sheet页的数据

# 获取所有的工作表的数据
def read_allsheet(path):
    # 获取工作簿
    workbook = openpyxl.load_workbook(path)
    # 获取工作簿中的所有表
    worksheet_list = workbook.sheetnames
    # 循环获取表数据,以字典的形式存储{sheet1:[],sheet2:[],sheet3:[]}
    alldatas = {}
    for worksheet in worksheet_list:
        # 获取所有数据,并将数据用字典列表的形式储存[{'id':1,'username':"","passwd":''},{},{}]
        datas = []
        my_sheet = workbook[worksheet]
        # 循环每一行的数据
        for row in range(1, my_sheet.max_row + 1):  # 从第二行开始取值
            data_dict = {}
            # 循环每一列的数据
            for col in range(1, my_sheet.max_column + 1):
                key = my_sheet.cell(1, col).value      # 第一行的数据做为key
                value = my_sheet.cell(row, col).value  # 其余行的数据作为value
                data_dict[key] = value
            datas.append(data_dict)

        key = worksheet
        value = datas
        alldatas[key] = value
    print(alldatas)

 

2 创建excel文件—→创建sheet页—→写入数据

def create_excel():
    # 创建工作簿
    workbook = openpyxl.Workbook()   ⭐
    # 创建工作表
    mysheet = workbook.create_sheet("mysheet1")    ⭐
    # 获取当前工作表(活跃工作表(当前编辑的工作表))
    worksheet = workbook.active      ⭐
    # 写入数据
    worksheet.cell(1, 1).value = "id"
    worksheet.cell(1, 2).value = "name"
    worksheet.cell(1, 3).value = "address"
    # 保存数据
    workbook.save("personal.xlsx")    

3 修改单元格数据

def edit_excel(path):
    # 获取工作簿
    workbook = openpyxl.load_workbook(path)
    # 获取工作表
    worksheet = workbook["Sheet"]
    # 修改某单元格数据
    worksheet.cell(1, 1).value = "No"  ⭐
    # 保存数据
    workbook.save(path)

4 添加单元格数据

def add_manydata(path):
    # 获取工作簿
    workbook = openpyxl.load_workbook(path)
    # 获取sheet页
    worksheet = workbook["mysheet1"]
    # 准备数据
    data = [1, 2, 3, 4, 5, 6]
    # 添加数据
    worksheet.append(data)
    # 保存工作簿
    workbook.save(path)

你可能感兴趣的:(接口自动化,python,开发语言,后端)