5分钟学会用Python

读取Excel

日常办公使用频率最高的软件非Excel莫属了,如果我们遇到需要导入别人的Excel进行后续数据分析、读取内容等操作,我们该怎么办呢?

测试开发哥哥说:莫要慌,人生苦短,我用Python!

本文目录

--环境配置

--主要使用方法

--打开文件

--获取sheet表

--获取行列数

--获取单元格值

--遍历表格

--读取指定行、指定列

--样例

--原始需求

--打开并获取sheet表

--读取表头

--读取内容

环境配置

Python的基础环境配置相信大家都很熟悉了,此处不再赘述,如需详细文档,可以善用搜索引擎。

Python读取Excel的外部库的方法参考上次的文章(5分钟学习用Python写测试报告—openpyxl应用),本次继续使用好用的openpyxl库进行Excel的读取

安装很简单,直接用pip命令即可安装成功:

pip install openpyxl

.py文件中导入openpyxl即可使用

import openpyxl或者from openpyxl import Workbook

主要使用方法

1.打开文件

from openpyxl import load_workbook

excel=load_workbook('/test.xlsx')

2.获取sheet表

获得每一个子表的名称

excel.sheetnames

通过表名获取当前表对象,方便后续进行遍历操作

table = excel.get_sheet_by_name('Sheet1')

3.获取行数和列数:

rows=table.max_row   #获取行数

cols=table.max_column    #获取列数

4.获取单元格值:

值得说明的是,openpyxl的行列数是按照Excel中的行列数从1开始的,而不是一般程序从0开始,此处使用的时候需要特别注意。

Data=table.cell(row=row,column=col).value

#第一行第一列从1开始的获取表格内容

5.遍历表格

遍历从某行到某列的方法是使用iter_rows('开始:结束') ,此处的入参和Excel保持一致,如:从A1单元格到D4单元格为 A1:D4

遍历的内容使用value方法获得

取值时要用value,例如:

for row in ws.iter_rows('A1:D4'):

for cell in row:

print(cell.value)

6.读指定行、指定列:

row=ws.rows

返回值row是可迭代的,是当前表格所有的行

columns=ws.columns

返回值column是可迭代的,是当前表格所有的列

打印第n行数据

print(rows[n])

样例

1.原始需求

假设我们有如下表格,第2行为表头,获取当前表头和表格的所有的内容,返回结果和list形式

2.打开并获取sheet表

获取表格1sheet对象

table = excel[tables[0]]

3.读取表头

逻辑为:

1.首先获得总列数

table.max_colum

2.然后遍历第二行每一列

for i in range(1, columns + 1)

+1是因为openpyxl是从1开始计数,python的range为左闭右开区间

TIPS:

因为在计算机硬件中迭代器对比较大小的运算很麻烦,有些时候两个地址都无法比较大小。但是比较是否相等就会简单的多,比如我要 range(5) 这时候只需判断从0开始每次加一,直到等于5的时候结束循环。

3.拿到单元格的值,存储到数组中。

row_data.append(cell_value)

4.拿到每一个表头的具体index

# 以下基于我们已知表头内容,但不知道位于第几个结果_index = row_data.index('结果')

测试项_index = row_data.index('测试项')

备注_index = row_data.index('备注')

4.读取全部内容

有了上面的学习,读取全部内容就轻而易举了

输出为:

{'测试项': ['通过率', '识别率', '召回率'], '结果': [0.9, 0.68, 0.78], '备注': ['通过', '识别', '召']}

相信聪明的读者看到这里,已经知道如何使用openpyxl进行表格的读取了,如果有更多的使用,可以参考openpyxl的官方文档:

https://openpyxl.readthedocs.io/en/stable/

万万没想到我看个公众号还有作业??

没关系,这里只是介绍下应用场景:

如下面的表格是某次性能测试的数据,请快速用python存入数据库并计算差异大于10%且大于4秒的数据,想必聪明的你这5分钟已经学会了。

python 读取excel表数据_5分钟学会用Python 读取Excel相关推荐

  1. matlab读取.mb15格式数据,两分钟搞定Python读取matlab的.mat数据

    Matlab是学术界非常受欢迎的科学计算平台,matlab提供强大的数据计算以及仿真功能.在Matlab中数据集通常保存为.mat格式.那么如果我们想要在Python中加载.mat数据应该怎么办呢?所 ...

  2. 怎么用python爬取整个网站_5分钟学会Python爬取整个网站

    本图文配套视频演示 爬取网站的步骤: 设定爬取目标 目标网站:我自己的博客,疯狂的蚂蚁 http://www.crazyant.net 目标数据:所有博客文章的 - 链接.标题.标签 2. 分析目标网 ...

  3. python 计算每日累计_5分钟学会用Python可视化数据分析美股

    翻译:孟家慧 校对:Jack.Brow 作者:Gayan Samarakoon 这是一个股票市场入门分析项目,旨在应用Python编程的基础知识分析金融市场的数据. 第0部分:导入必要的模块 第1部分 ...

  4. python美国股票数据api_5分钟学会用Python获取美股股票数据

    在以前几篇对股票数据做分析和预测的文章后,很多读者对如何获取股票数据很有兴趣.下面就介绍下美股的历史数据获取api来回馈读者. 美股的历史数据获取api 众所周知,Yahoo财经废掉了他们的历史数据a ...

  5. 用python编写猜成语游戏_10分钟学会用python写游戏!Python其实很简单!

    安装pygame 本人电脑是windows 10.python3.6,pygame下载地址:https://pypi.python.org/pypi/Pygame/1.9.3 请自行下载对应pytho ...

  6. python怎么从excel获取数据_python如何读取excel表数据

    python读取excel表数据的方法:首先安装Excel读取数据的库xlrd:然后获取Excel文件的位置并且读取进来:接着读取指定的行和列的内容,并将内容存储在列表中:最后运行程序即可. pyth ...

  7. python读取mysql中表内数据_Python读取MySQL表数据的方法介绍

    这篇文章主要为大家详细介绍了Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参 ...

  8. python合并excel表数据_23.python之excel多表合并

    关于python的应用办公中很常见,尤其是对于数量较多的重复性操作.本节课要做的是将多张excel表中的信息合并到一张excel表中. 新建一个文件夹名为[merge],里面放入三个名为[销售订单信息 ...

  9. 读取指定文件夹里多个excel表,并将所有excel表数据整合到一个excel中

    1.找出指定文件夹里的所有文件 #-*- encoding: utf-8 -*-# 找出指定文件夹里的所有文件 import osfilePath = 'C:\\Users\\lzk\\Desktop ...

最新文章

  1. 大多数日志文件的后缀名是_编程小短文:find,让你随心所欲查找整块磁盘的任意文件...
  2. Apache PHP-fpm Mariadb
  3. 深度学习入门笔记系列(三)——感知器模型和 tensorboard 的使用方法
  4. 管理多个Java安装
  5. 匿名内部类 handler
  6. dhclient常用命令
  7. BZOJ5329:[SDOI2018]战略游戏(圆方树,虚树)
  8. 【2016北京集训测试赛(八)】 直径 (虚树+树的直径)
  9. 软件测试详细的基本流程
  10. IT行业毕业生投简历或面试技巧
  11. linux下anjuta的java环境,Anjuta下载-Anjuta IDE For Linux(集成开发环境)V3.18.0 官方版 - 极光下载站...
  12. sift论文_ImageNet一作邓嘉最佳论文,ECCV2020奖项全公布
  13. Visual SourceSafe 2005介绍
  14. docker搭建searx_『颜值即正义』看小睿“自建搜索引擎”
  15. 硬盘详解与如何选购固态硬盘
  16. springboot学习
  17. linux ida和idr分配机制
  18. base64加密和解密(动态密钥)
  19. Anaconda3-5.2.0+PyTorch1.3.0+cuda9.2本地安装教程
  20. 抢注数字域名 数字含义解释

热门文章

  1. android 广播反注册后,BroadcastReceiver注册、使用及其权限
  2. java跟其_java跟其他语言比有哪些优势?
  3. 跨境电商亚马逊店铺到底需不需要ERP系统啊?
  4. Algorithm:十大经典排序算法C++实现及总结
  5. CCF 2016-4-4游戏
  6. Data Lake Analytics: 基于OSS文件自动推断建表
  7. Promise源码实现
  8. 备忘:gcc在linux下打包so库并调用
  9. Java自动化测试框架-05 - 来给你的测试报告化个妆整个形 - (上)(详细教程)
  10. 需要氪金吗_《死或生6》染发也需要氪金,海外玩家吐槽官方吃相太难看