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对html代码进行escape编码的方法
May 04 Python
Python实现把json格式转换成文本或sql文件
Jul 10 Python
python 获取网页编码方式实现代码
Mar 11 Python
使用python将图片按标签分入不同文件夹的方法
Dec 08 Python
pybind11在Windows下的使用教程
Jul 04 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
Python列表list操作相关知识小结
Jan 29 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
Python colormap库的安装和使用详情
Oct 06 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
风格模板初级不完全修改教程
2006/10/09 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
js比较日期大小的方法
2015/05/12 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Selenium定位元素操作示例
2018/08/10 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
Android interview questions
2016/12/25 面试题
小学家长会邀请函
2014/01/23 职场文书
老公保证书范文
2014/04/29 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
市场营销计划书
2015/01/17 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
教师节班会主持词
2015/07/06 职场文书