【干货】建议收藏!!全网最完整的Python操作Excel数据封装函数

在这里插入图片描述

1. 写在前面

对比其它编程语言,我们都知道Python最大的优势是代码简单,有丰富的第三方开源库供开发者使用。伴随着近几年数据分析的热度,Python也成为最受欢迎的编程语言之一。而对于数据的读取和存储,对于普通人来讲,除了数据库之外,最常见的就是微软的Excel。

2. 前期准备

2.1. 初识Excel

Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。

2.2. 格式区别

Excel中有xls和xlsx两种格式,它们之间的区别是:

  • 文件格式不同。xls是一个特有的二进制格式,其核心结构是复合文档类型的结构,而xlsx的核心结构是XML类型的结构,采用的是基于 XML的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
  • 版本不同。xls是Excel2003及以前版本生成的文件格式,而xlsx是Excel2007及以后版本生成的文件格式。
  • 兼容性不同。xlsx格式是向下兼容的,可兼容xls格式。

2.3. 库的使用

当我们要操作xls格式文件时,需要使用到xlrd和xlwt这两个第三方库;当我们要操作xlsx格式文件时,则需要使用到openpyxl第三方库。

模块 来源 支持格式
xlrd 第三方库 × xls
xlwt 第三方库 × xls
openpyxl 第三方库 xlsx

2.4. 整体思路

当使用以上几个模块的时候,从理论上我们就可以完全操作不同格式的Excel的读和写,很多人就疑惑,那这篇文章的作用是什么?我们直接学习对应的这三个模块不就好了吗?答案就是:虽然这几个库已经把Excel的文件、表、行、列的概念完全转换为Python中的对象,但每次操作都需要遍历每一个单元格,甚至很多时候我们要花费大量的时间在思考循环单元格的边界上,这本身就是在重复造轮子,因此我花了半天时间整理了以下六个函数。

方法名 作用 参数 参数注释 返回值 返回值注释
read_xls_excel 读取xls格式Excel数据 url,index ①文件路径,②工作表序号(第几个工作表,传入参数从1开始数) data 表格中的数据
write_xls_excel 写入xls格式Excel数据 url,sheet_name,two_dimensional_data ①文件路径,②表名,③将要写入表格的数据(二维列表)
write_xls_excel_add 追加写入xls格式Excel数据 url, two_dimensional_data, index ①文件路径,②将要写入表格的数据(二维列表),③指定要追加的表的序号(第几个工作表,传入参数从1开始数)
read_xlsx_excel 读取xlsx格式Excel数据 url,index ①文件路径,②工作表序号(第几个工作表,传入参数从1开始数) data 表格中的数据
write_xlsx_excel 写入xlsx格式Excel数据 url, sheet_name, two_dimensional_data ①文件路径,②表名,③将要写入表格的数据(二维列表)
write_xlsx_excel_add 追加写入xlsx格式Excel数据 url, sheet_name, two_dimensional_data ①文件路径,②表名,③将要写入表格的数据(二维列表)

3. 代码展示

3.1. xls格式

3.1.1. 读取xls格式文件

'''
读取xls格式文件
参数:
    url:文件路径
    index:工作表序号(第几个工作表,传入参数从1开始数)
返回:
    data:表格中的数据
'''
def read_xls_excel(url,index):
    # 打开指定的工作簿
    workbook = xlrd.open_workbook(url)
    # 获取工作簿中的所有表格
    sheets = workbook.sheet_names()
    # 获取工作簿中所有表格中的的第 index 个表格
    worksheet = workbook.sheet_by_name(sheets[index-1])
    # 定义列表存储表格数据
    data = []
    # 遍历每一行数据
    for i in range
评论 288
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执章学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值