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的urllib库提交WEB表单
Feb 24 Python
Python运行的17个时新手常见错误小结
Aug 07 Python
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python如何生成网页验证码
Jul 28 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python面向对象基础入门之编码细节与注意事项
Dec 11 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
Python截图并保存的具体实例
Jan 14 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
python 异常处理总结
2016/10/18 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
新闻编辑自荐书范文
2014/02/12 职场文书
新书发布会策划方案
2014/06/09 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
工作态度怎么写
2015/06/25 职场文书
污染环境建议书
2015/09/14 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书