Python笔记一之excel的读取
本文首发于公众号:Hunter后端
原文链接:Python笔记一之excel的读取
这里我常用的 python 对于 excel 的读取库有两个,一个是 xlsxwriter 用于操作 excel 的写入,一个是 xlrd 用于 excel 文件的读取。
使用的库的版本如下:
- xlsx==1.2.6
- xlrd==1.1.0
xlsxwriter 写入 excel
新建一个 excel
import xlsxwriter
path = "/Users/hunter/xxx.xlsx"
wb = xlsxwriter.Workbook(path)
添加一个 sheet:
# 定义 sheet 的名称
sheet_name = "sheet_name"
# 添加一个 sheet 页
sheet_1 = wb.add_worksheet(sheet_name)
sheet 表格数据的写入
sheet 的表格数据有几种方式,一种是通过 x, y 这种坐标轴定位的方式,从左上角开始,左上角也就是 'A1' 的位子为 (0, 0)。
比如我们想要在左上角写入数据:
sheet1.write(0, 0, "A1数据")
如果我们想要在第二行,第三列写入数据:
sheet1.write(1, 2, "C2数据")
另一种是通过 excel 的单元格名称来定位写入,比如 'A1','D4'这种:
sheet1.write("A1", "A1数据")
sheet1.write("F2", "F2数据")
批量写入
除了单个单元格的数据写入,我们还可以通过某个起始单元格来批量写入。
批量写入可以从横向写入,也可以从纵向写入。
比如如果想要从 C2 单元格开始,横向写入 python,java,JS 三条数据,可以如下操作:
sheet1.write_row("C2", ["python", "java", "JS"])
也可以通过 i, j 的定位方式来操作,比如从 "C3" 开始往后写入:
sheet1.write_row(2, 2, ["python", "java", "JS"])
上面的 write_row() 方法是横向写入,从起始位置横向开始写,如果是纵向,那就使用 write_column()
保存
然后将这个 excel 保存:
wb.close()
xlrd 读取 excel
注意: 安装 xlrd 的时候不要安装默认的版本,当前默认的最新版本不能解析 xlsx 文件,我这里选择的是 xlrd==1.0.0
使用 xlrd 从 excel 中读取数据的操作方式如下:
获取 excel
import xlrd
path = "/Users/hunter/xxx.xlsx"
workbook = xlrd.open_workbook(path)
获取 sheet
获取 sheet 对象列表:
sheet_list = workbook.sheets()
获取所有的 sheet 的名称列表:
sheet_name_list = workbook.sheet_names()
根据索引获取单个 sheet:
i = 0
sheet = workbook.sheet_by_index(i)
获取单元格数据
如果直接获取单元格数据,可以通过坐标轴的 x, y 的方式来定位获取,其中左上角是 (0, 0)。
比如我们想获取 (0, 0) 位子的数据,也就是 'A1' 的单元格,我们可以:
cell = sheet.cell(0, 0)
获取到的是这个单元格对象,如果想要获取其中的值,需要对 cell 对象再取值:
print(cell.value)
也可以直接使用取值的方法:
print(sheet.cell_value(0, 0))
获取行列数据
上面是通过单元格单个获取数据,我们可以单独获取行和列的数据,比如获取第二行的单元格:
row_2 = sheet.row(1)
上面获取到的数据是一个对象列表,每个元素都是一个个的单元格 cell,也就是我们上面通过 cell() 函数获取到的对象。
如果是想直接取值,则可以:
row_value_2 = sheet.row_values(1)
返回的是一个列表,元素是该行单元的 value 值
查看该行长度:
row_value_2_len = sheet.row_len(1)
获取 sheet 的总行数:
nrows = sheet.nrows
根据列获取数据将函数的 row 换成 col 即可,比如获取第二列的数据:
col_value_2 = sheet.col_values(1)
如果想获取更多相关文章,可扫码关注阅读:

Python笔记一之excel的读取的更多相关文章
- python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据
当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...
- 记录python接口自动化测试--从excel中读取params参数传入requests请求不生效问题的解决过程(第七目)
在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中 ...
- 用python在excel中读取与生成随机数写入excel中
今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...
- 【转】Python xlrd、xlwt、xlutils读取、修改Excel文件
Python xlrd.xlwt.xlutils读取.修改Excel文件 一.xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文 ...
- 浅谈python之利用pandas和openpyxl读取excel数据
在自学到接口自动化测试时, 发现要从excel中读取测试用例的数据, 假如我的数据是这样的: 最好是每行数据对应着一条测试用例, 为方便取值, 我选择使用pandas库, 先安装 pip instal ...
- Python笔记-第一天
1.Python的输出print函数要把输出的字符串用单引号或者双引号括起来,但是不能混用. 比如print('hello,world')和print("hello,world") ...
- python笔记 - day3
python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...
- python笔记之常用模块用法分析
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
- python笔记之提取网页中的超链接
python笔记之提取网页中的超链接 对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的.但是我发现一个问题,如果直接提取a标签的href,就会包含jav ...
- python笔记之ZipFile模块
python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...
随机推荐
- 如何将GitLab仓库同步到GitHub和Gitee?
作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 前言 在之前写的[Kimi.RocketMQ.NET]开源项目中,代码我是放在自己搭建的GitLab服 ...
- 2023 ICPC 网络赛 I
没留够时间准备导致开考的时候耽搁了 开场我先写缺省源,抄串了一行,后面才发现...然后看了 L 发现是签到,此时 ddw 会了 A 让 zsy 上去写,我等了一会才把 zsy 撵下来写 L 是个失误 ...
- Openssl Des3对压缩文件进行加密命令详解
群友提问: 致力于明天: tar -cvf - WMG_Back_"$Today"|openssl des3 -salt -k hY91gd3GJAAfghECleLwWQAPGK ...
- 【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋
在国庆假期的一个傍晚,小悦正在家中享受火锅美食.她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑.突然,手机铃声响起,打破了这温馨的氛围.她拿起手机一看,是公司打来的电话. "小悦,有个紧急的项 ...
- android 反编译 apk 分享 smali2java 1.0.0.558
smali2java 1.0.0.558 smali2java是一个将smali代码反编译成java代码的工具. 什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种 ...
- CSP初赛错题集
初赛错题集 洛谷有题 NOIP 2018 T9 给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作.则最坏情况下,在该数组中同时找最大与最小的数至少 ...
- css 10-13
1.背影样式 backgroud-color 背景颜色 backgroud-color :red backgroud-image 背 ...
- 【Unity3D】水面特效
1 前言 水波特效 中通过屏幕后处理实现了环形水波效果,本文通过 Shader Graph 实现了模拟水面特效,包含以下特效细节.Shader Graph 基础知识详见→Shader Graph简 ...
- Vue之键盘事件
1.使用keydown触发事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- springboot整合shiro框架学习
springboot整合shiro框架做用户认证与授权 springboot整合shiro框架的流程主要分为: 导入shiro依赖 <dependency> <groupId> ...