Python系列一之excel的读取

devtools/2024/9/23 21:57:26/

这里我常用的 python 对于 excel 的读取库有两个,一个是 xlsxwriter 用于操作 excel 的写入,一个是 xlrd 用于 excel 文件的读取。

使用的库的版本如下:

  • xlsx==1.2.6
  • xlrd==1.1.0

excel">xlsxwriter 写入 excel

新建一个 excel

import xlsxwriterpath = "/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()

excel">xlrd 读取 excel

注意: 安装 xlrd 的时候不要安装默认的版本,当前默认的最新版本不能解析 xlsx 文件,我这里选择的是 xlrd==1.0.0

使用 xlrd 从 excel 中读取数据的操作方式如下:

获取 excel

import xlrdpath = "/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)

http://www.ppmy.cn/devtools/31840.html

相关文章

在Ubuntu上怎么查看安装了哪些包?

2024年5月3日,周五晚上 在Ubuntu上,你可以使用以下命令来查看系统中已安装的包: 使用dpkg命令:dpkg --list这个命令将列出系统中所有已安装的软件包,包括名称、版本号和描述等信息。你可以使用 grep 命令来过滤结果&a…

Golang数组与切片

文章目录 数组数组介绍数组的定义方式访问与修改数组元素遍历数组元素数组指针 切片切片介绍切片的定义方式访问与修改切片元素添加切片元素切片的拷贝遍历切片元素string的切片 数组 数组介绍 数组介绍 在Go中,数组是一个由固定长度的特定类型元素组成的序列&…

AG32 MCU在触摸屏的应用(AGM FPGA/MCU行业应用)

传统的屏驱MCU常见应用于洗衣机、空调、空调面板、仪器仪表等人机交互界面显示场景中,通常是以段码的形式显示设备运转的时间、温度、测量结果等简单运行数据,随着人机交互需求丰富化,智能家居设备、摩托车、电动车等产品也逐步增加了屏幕显示…

【SQL】ACID事务与隔离级别

数据库事务 数据库事务具有ACID这4个特性: A:Atomicity,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;C:Consistency,一致性,事务完…

sql数据库——增删改

1.插入 insert into <表><字段1&#xff0c;字段2&#xff0c;字段3> values<值1&#xff0c;值2&#xff0c;值3> 2.更新/修改 update <表名> set 修改字段1值1&#xff0c;修改字段2值2&#xff0c;修改字段3值3&#xff0c; 3.删除 delete …

公共交通无障碍设施:科技翅膀助力盲人出行新飞跃

在城市的脉络中&#xff0c;公共交通扮演着连接每一个角落的重要角色。然而&#xff0c;对于视力受限的盲人朋友而言&#xff0c;这幅繁忙而复杂的交通网络往往隐藏着诸多不易察觉的障碍。值得庆幸的是&#xff0c;随着公共交通无障碍设施的不断完善&#xff0c;以及高科技辅助…

如何使用Spring Boot导出数据到Excel表格

在开发应用程序时&#xff0c;经常会遇到将数据导出到Excel表格的需求。Spring Boot提供了简单而有效的方法来实现这个功能。本文将介绍如何使用Spring Boot和Apache POI库将数据导出到Excel表格&#xff0c;并提供一个示例代码来演示该过程。 1. 准备工作 首先&#xff0c;确…

卷积神经网络

卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习模型&#xff0c;它在图像识别、视频分析和自然语言处理等领域表现出色。CNN的核心思想是通过卷积层来提取输入数据的局部特征&#xff0c;然后通过非线性激活函数、池化层&#xff08;Po…