Python3利用openpyxl读写Excel文件的方法实例


Posted in Python onFebruary 03, 2021

前言

Python中常用的操作Excel的三方包有xlrd,xlwt和openpyxl等,xlrd支持读取.xls和.xlsx格式的Excel文件,只支持读取,不支持写入。xlwt只支持写入.xls格式的文件,不支持读取。

openpyxl不支持.xls格式,但是支持.xlsx格式的读取写入,并且支持写入公式等。

原始数据文件apis.xlsx内容:

name method url data json result
get接口 get https://httpbin.org/get?a=1&b=2
post表单接口 post https://httpbin.org/post {name: Kevin,age:1}
post-json接口 post https://httpbin.org/post {name: Kevin,age: 21}

读取数据

读取所有数据

import openpyxl

# 打开excel
excel = openpyxl.load_workbook('apis.xlsx') # 有路径应带上路径
# 使用指定工作表
sheet = excel.active # 当前激活的工作表
# sheet = excel.get_sheet_by_name('Sheet1')
# 读取所有数据
print(list(sheet.values)) # sheet.values 生成器
print(sheet.max_column) # 最大列数
print(sheet.max_row) # 最大行数

显示结果:

[('name', 'method', 'url', 'headers', 'data', 'json', 'result'), ('get接口', 'get', 'https://httpbin.org/get?a=1&b=2', None, None, None, None), ('post表单接口', 'post', 'https://httpbin.org/post', 'cookie: token=123', '{name: Kevin,age: 21}', None, None), ('post-json接口', 'post', 'https://httpbin.org/post', None, None, '{name: Kevin,age: 21}', None)]
7
4

按行读取

代码接上例

...
# 按行读取
for row in sheet.iter_rows(min_row=1, min_col=1, max_col=3, max_row=3): 
 print(row)
# 读取标题行
for row in sheet.iter_rows(max_row=1):
 title_row = [cell.value for cell in row]
print(title_row)
# 读取标题行以外数据
for row in sheet.iter_rows(min_row=2):
 row_data = [cell.value for cell in row]
 print(row_data)

打印结果:

(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)
(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)
(<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>)
['name', 'method', 'url', 'headers', 'data', 'json', 'result']
['get接口', 'get', 'https://httpbin.org/get?a=1&b=2', None, None, None, None]
['post表单接口', 'post', 'https://httpbin.org/post', 'cookie: token=123', '{name: Kevin,age: 21}', None, None]
['post-json接口', 'post', 'https://httpbin.org/post', None, None, '{name: Kevin,age: 21}', None]

读取单元格数据

代码接上例

...
# 读取单元格数据
print(sheet['A1'].value)
print(sheet.cell(1,1).value) # 索引从1开始

打印结果:

name
name

写入文件

代码接上例

# 写入单元格
sheet['F2'] = 'PASS'
result_col = title_row.index('result')+1 # 'result'所在的列号
sheet.cell(3, result_col).value = 'PASS'
# 整行写入
new_row = ['post-xml接口', 'post', 'https://httpbin.org/post']
sheet.append(new_row)
# 保存文件,也可覆盖原文件
excel.save("apis2.xlsx")

写入结果:

name method url data json result
get接口 get https://httpbin.org/get?a=1&b=2 PASS
post表单接口 post https://httpbin.org/post {name: Kevin,age:1} PASS
post-json接口 post https://httpbin.org/post {name: Kevin,age: 21}
post-xml接口 post https://httpbin.org/post

更多操作可参考官方文档: https://openpyxl.readthedocs.io/en/stable/

总结

到此这篇关于Python3利用openpyxl读写Excel文件的文章就介绍到这了,更多相关Python3用openpyxl读写Excel文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python模拟登录12306的方法
Dec 30 Python
用map函数来完成Python并行任务的简单示例
Apr 02 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
简单谈谈Python中的闭包
Nov 30 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Django--权限Permissions的例子
Aug 28 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
python和go语言的区别是什么
Jul 20 Python
python 对图片进行简单的处理
Jun 23 Python
python之openpyxl模块的安装和基本用法(excel管理)
Feb 03 #Python
python中time.ctime()实例用法
Feb 03 #Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 #Python
利用Python过滤相似文本的简单方法示例
Feb 03 #Python
python time.strptime格式化实例详解
Feb 03 #Python
Python字符串的15个基本操作(小结)
Feb 03 #Python
python调用百度AI接口实现人流量统计
Feb 03 #Python
You might like
PHP中的正规表达式(一)
2006/10/09 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Python中的 enum 模块源码详析
2019/01/09 Python
20行python代码实现人脸识别
2019/05/05 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
python和js交互调用的方法
2020/06/23 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
教师研修随笔感言
2014/01/23 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
先进基层党组织材料
2014/12/25 职场文书
以权谋私检举信范文
2015/03/02 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
行政复议答复书
2015/07/01 职场文书
2019经典广告词集锦!
2019/07/02 职场文书