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计算N天之后日期的方法
Mar 31 Python
使用Python实现一个简单的项目监控
Mar 31 Python
Python ftp上传文件
Feb 13 Python
一张图带我们入门Python基础教程
Feb 05 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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实现的下载远程图片自定义函数分享
2015/01/28 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
python select.select模块通信全过程解析
2017/09/20 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python监控进程脚本
2018/04/12 Python
Python中作用域的深入讲解
2018/12/10 Python
python实现批量文件重命名
2019/10/31 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
python各种excel写入方式的速度对比
2020/11/10 Python
Python 内存管理机制全面分析
2021/01/16 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
自我评价范文
2013/12/22 职场文书
预备党员思想汇报
2014/01/08 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
法制报告会主持词
2014/04/02 职场文书
树转促学习心得体会
2014/09/10 职场文书
群众路线对照检查材料
2014/09/22 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
三峡导游词
2015/01/31 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫