本文首发于公众号: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的读取的更多相关文章

  1. python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据

    当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...

  2. 记录python接口自动化测试--从excel中读取params参数传入requests请求不生效问题的解决过程(第七目)

    在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中 ...

  3. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  4. 【转】Python xlrd、xlwt、xlutils读取、修改Excel文件

    Python xlrd.xlwt.xlutils读取.修改Excel文件 一.xlrd读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文 ...

  5. 浅谈python之利用pandas和openpyxl读取excel数据

    在自学到接口自动化测试时, 发现要从excel中读取测试用例的数据, 假如我的数据是这样的: 最好是每行数据对应着一条测试用例, 为方便取值, 我选择使用pandas库, 先安装 pip instal ...

  6. Python笔记-第一天

    1.Python的输出print函数要把输出的字符串用单引号或者双引号括起来,但是不能混用. 比如print('hello,world')和print("hello,world") ...

  7. python笔记 - day3

    python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...

  8. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  9. python笔记之提取网页中的超链接

    python笔记之提取网页中的超链接 对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的.但是我发现一个问题,如果直接提取a标签的href,就会包含jav ...

  10. python笔记之ZipFile模块

    python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...

随机推荐

  1. nmcli 命令设置网络

    nmcli 命令设置网络 设置静态 IP 地址 sudo nmcli connection modify "连接名称" ipv4.addresses IP地址/子网掩码 设置网关 ...

  2. 创建Anaconda虚拟Python环境的方法

      本文介绍在Anaconda环境下,创建.使用与删除Python虚拟环境的方法.   在Python的使用过程中,我们常常由于不同Python版本以及不同第三方库版本的支持情况与相互之间的冲突情况, ...

  3. MongoDB 中使用 explain 分析创建的索引是否合理

    MongoDB 中如何使用 explain 分析查询计划 前言 查询计划 explain explain 1.queryPlanner 2.executionStats 3.allPlansExecu ...

  4. pyinstall打包相对路径问题

    pyinstall打包相对路径问题 ​ pyinstaller 打包py文件成exe文件,在没有python的机器上运行,执行打包后的程序,经常会出现程序使用的图标无法显示,程序使用的关联文件无法关联 ...

  5. 【Python进阶-PyQt5】00搭建PyQt5环境

    1.创建独立开发虚拟环境 1.1虚拟环境简介 我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库.开发Web应用程序我们主要用到Dja ...

  6. Blazor前后端框架Known-V1.2.16

    V1.2.16 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Git ...

  7. DBA容灾与备份恢复:闪回应用及实践(一)

    闪回应用及实践 针对主机故障.网络故障.系统软件故障.存储介质故障.人为操作失误等各类故障,可以通过RAC.RMAN.Data Guard等成熟的解决方案来处理,不过对于人为操作失误防范的首推技术还是 ...

  8. $GNRMC

    $GNRMC 格式: $GNRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,&l ...

  9. 使用CEF(六)— 解读CEF的cmake工程配置

    距离笔者的<使用CEF>系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看<使用CEF(一)- 起步>编写的内容,文笔稚嫩,内容单薄是显而 ...

  10. 数据结构与算法 | 数组(Array)

    数组(Array) 数组(Array)应该是最基础的数据结构之一,它由相同类型的元素组成的集合,并按照一定的顺序存储在内存中.每个元素都有一个唯一的索引,可以用于访问该元素. // java 数组示例 ...