python之openpyxl操作Excel文件读写

一、安装 Openpyxl 模块

File > Settings > Project Interpreter在这里插入图片描述

二、桌面生成 Excel 文件,写入一些数据并复制到PyCharm中

注:【openpyxl 只支持 .xlsx 格式的 Excel 文件】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、pycharm 中使用 openpyxl 读取文件数据

在这里插入图片描述

# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-  
# -*- coding: utf-8 -*-                                         
#  @Time   : 2020/08/02
#  @File    : openpyxl_study.py
# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-
# 导入 openpyxl 模块
import openpyxl

# 1、将指定 excel 文件加载到一个工作簿对象中
wb = openpyxl.load_workbook("jzq.xlsx")
# 2、选择文件中的表单【sheet表名】
sheet = wb['login']
# 3、根据行号和列号读取数据【第一行第一列的数据】
res = sheet.cell(row=1,column=1)
# 4、打印取到的数据值
print(res.value)

四、pycharm 中使用 openpyxl 操作 Excel 写入数据


# 导入 openpyxl 模块
import openpyxl

# 1、将指定 excel 文件加载到一个工作簿对象中
wb = openpyxl.load_workbook("jzq.xlsx")
# 2、选择文件中的表单【sheet表名】
sheet = wb['login']
# 3、根据行号、列号输入value值
sheet.cell(row=1,column=1,value="张三")
# 4、保存为文件
wb.save("jzq.xlsx")

执行后的结果:

在这里插入图片描述

如果出现以下报错信息 ,请注意 :

【在写入数据时,文件不可处于打开状态 !!!】

在这里插入图片描述

五、读取文件所有单元格的数据内容

# 导入 openpyxl 模块
import openpyxl

'''读取文件所有单元格的数据'''
# 1、将指定 excel 文件加载到一个工作簿对象中
wb = openpyxl.load_workbook("jzq.xlsx")
# 2、选择文件中的表单【sheet表名】
sheet = wb['login']
# 3、使用 .rows 方法把所有的表单对象存储在列表中
# type为列表嵌套元组再嵌套单元格
res = list(sheet.rows)
# 遍历每一行的内容
for cases in res :
    # 遍历每一行的所有单元格
    for cells in cases :
        # 获取每个单元格的 value 值
        print(cells.value,end="   ")
    print()
    

在这里插入图片描述

六、 Openpyxl 读取、组装用例数据

  • 新建一个 .xlsx 文件在这里插入图片描述

  • 复制文件至pycharm中,并新建一个读取组装数据的 py文件在这里插入图片描述

# 导入 openpyxl 模块
import openpyxl

'''用例数据读取组装成列表嵌套字典的格式'''
# 1、将指定 excel 文件加载到一个工作簿对象中
wb = openpyxl.load_workbook("jzq_openpyxl.xlsx")
# 2、选择文件中的表单【sheet表名】
sheet = wb['login']
res = list(sheet.rows)

'''获取第一行的单元格'''
title = []
# 遍历第一行单元格所有数据并添加到列表中
for tag in res[0]:
    title.append(tag.value)
case_data = []
'''遍历除了第一行以外的所有行'''
for row in res[1:]:
    data = []
    # 遍历每一行的所有单元格子
    for c in row:
        # 将每个单元格的 value 值添加列表 res_text 中
        data.append(c.value)
# 使用zip将title和excepted打包成dict属性
    case = dict(zip(title,data))
    case_data.append(case )
print(case_data)

    

七、提供一个封装好的openpyxl类方法,直接调用即可在 excel 表中 读取 / 写入数据

# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-  
# -*- coding: utf-8 -*-                                         
#  @Time   : 2020/08/02
#  @File    : Excel_R&W_demo.py
# -*- -*- -*-  -*-  -*-  -*-  -*-  -*-
import openpyxl

class Excel:
    def __init__(self,workbook_name,sheet_name):
        self.workbook_name = workbook_name
        self.sheet_name = sheet_name

    def read_excel(self):
        # 1、将指定 excel 文件加载到一个工作簿对象中
        wb = openpyxl.load_workbook(self.workbook_name)
        # 2、选择文件中的表单【sheet表名】
        sheet = wb[self.sheet_name]
        res = list(sheet.rows)

        '''获取第一行的单元格'''
        title = []
        # 遍历第一行单元格所有数据并添加到列表中
        for tag in res[0]:
            title.append(tag.value)
        case_data = []
        '''遍历除了第一行以外的所有行'''
        for row in res[1:]:
            data = []
            # 遍历每一行的所有单元格子
            for c in row:
                # 将每个单元格的 value 值添加列表 res_text 中
                data.append(c.value)
                # 使用zip将title和excepted打包成dict属性
            case = dict(zip(title, data))
            case_data.append(case)
        return case_data


    def write_excel(self,row,column,value):
        # 1、将指定 excel 文件加载到一个工作簿对象中
        wb = openpyxl.load_workbook(self.workbook_name)
        # 2、选择文件中的表单【sheet表名】
        sheet = wb[self.sheet_name]
        # 3、根据行号、列号输入value值
        sheet.cell(row=1,column=1,value="张三")
        # 4、保存为文件
        wb.save(self.workbook_name)


if __name__ == '__main__':
    excel = Excel("jzq_openpyxl.xlsx","login")
    res = excel.read_excel()
    print(res)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值