博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python使用openpyxl操作excel表格
阅读量:2070 次
发布时间:2019-04-29

本文共 2958 字,大约阅读时间需要 9 分钟。

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取


一、openpyxl的使用

pip install openpyxl

第一步:打开工作簿(读取Excel文件中所有的数据保存为工作簿对象)

workbook = openpyxl.load_workbook('cases.xlsx')

第二步:选中表单对象

sheet = workbook['login']

第三步:通过表单选中表格读取数据

①读取内容(第五行第四列)

data = sheet.cell(row=5,column=4)printa(data.value) # 获取内容用value方法

②写入内容(保存才会生效)

sheet.cell(row=7,column=3,value='("Python","123456")')# 写入内容后,一定要保存才会生效workbook.save('cases.xlsx')

③获取最大行和最大列

# 最大行sheet.max_row# 最大列sheet.max_column

④按行获取所有的格子对象,每一行格子放入一个元组中

sheet.rows

注意点:不要随便在表格中敲空格

二、openpyxl的封装

导包

import openpyxl

封装

class ReadExcel(object):    """操作Excl文件"""    def __init__(self, fileName, sheetName):        """        初始化方法        :param fileName: Excel文件名        :param sheetName: 表单名        """        self.fileName = fileName        self.sheetName = sheetName    def open(self):        """打开工作簿,选中表单"""        self.wb = openpyxl.load_workbook(self.fileName)        self.sh = self.wb[self.sheetName]    def save(self):        """保存工作簿对象的方法"""        self.wb.save(self.fileName)        self.wb.close()  # 这一行加不加关系不大,加了可以释放内存

1、读取数据

①将每条数据存储成字典类型

def read_data_dict(self):        """读取数据(将每条数据存储成字典类型)"""        # 打开工作簿        self.open()        # 通过rows获取Excel文件中所有的行数据,然后把数据转成列表        rows = list(self.sh.rows)        # 表头        title = []        # 遍历Excel文件中的第一行表头信息        for i in rows[0]:            title.append(i.value)        # 用例数据列表        cases = []        # 遍历用例数据行        for row in rows[1:]:            # 定义一个列表存放每一行的数据            data = []            # 遍历每一行的数据            for r in row:                data.append(r.value)            # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中            case = dict(zip(title, data))            cases.append(case)        return cases

②将每条数据存储成CaseData类对象类型

class CaseData(object):    """保存用例数据类"""    pass
def read_data_obj(self):        """读取数据(将数据保存到CaseData类中)"""        self.open()        rows = list(self.sh.rows)        # 表头        title = []        # 遍历Excel文件中的第一行表头信息        for i in rows[0]:            title.append(i.value)        # 定义用例列表,用来存放用例类列表        cases = []        # 遍历用例数据行        for row in rows[1:]:            # 定义一个列表存放每一行的数据            data = []            # 遍历每一行的数据            for r in row:                data.append(r.value)            # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中            case = dict(zip(title, data))            # 定义一个用例存放类对象            case_obj = CaseData()            for k, v in case.items():                # 通过setattr()给对象添加属性                setattr(case_obj, k, v)            # 把对象添加到列表中            cases.append(case_obj)        return cases

2、写入数据

def write_data(self, row, column, value):        """        写入数据        :param row: 行        :param column: 列        :param value: 数据        """        self.open()        # 指定行列进行写入数据        self.sh.cell(row=row, column=column, value=value)        # 保存        self.wb.save(self.fileName)        # 关闭        self.wb.close()

转载地址:http://igjmf.baihongyu.com/

你可能感兴趣的文章
SpringBoot集成mybatis
查看>>
Shell文本处理三剑客之grep
查看>>
linux查看进程启动时间
查看>>
Linux 基础命令
查看>>
35 个 Java 代码性能优化总结
查看>>
Linux Sed 命令
查看>>
StandardContext 错误
查看>>
如何添加网站favicon.ico图标
查看>>
cvs no such repository 问题
查看>>
MySQL中REGEXP正则表达式
查看>>
服务端UDP双向通信学习资料
查看>>
Mina TCP 编码解码相关资料收集
查看>>
Maven 打包 上传 运行
查看>>
Maven插件wagon-maven-plugin自动化部署
查看>>
使用wagon-maven-plugin插件自动部署项目
查看>>
Maven 打包的三种方式 和 Springboot 分离jar包
查看>>
ActiveMQ中Session设置的相关理解
查看>>
Linux Python 2.7.15
查看>>
Nexus配置Linux Yum Repository
查看>>
Nexus Python pip Repository
查看>>