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中的readline()方法的使用
May 24 Python
深入理解Python中字典的键的使用
Aug 19 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
通过Python实现自动填写调查问卷
Sep 06 Python
Python 列表理解及使用方法
Oct 27 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
Python适配器模式代码实现解析
Aug 02 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
Python3实现飞机大战游戏
Apr 24 Python
Django Form设置文本框为readonly操作
Jul 03 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 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实现的zip文件内容比较类
2014/09/24 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP二维数组去重算法
2016/12/17 PHP
php中如何执行linux命令详解
2018/11/06 PHP
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Vue中计算属性computed的示例解读
2017/07/26 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python性能优化的20条建议
2014/10/25 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
工艺工程师工作职责
2013/11/23 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
资产运营委托书范本
2014/10/16 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书