Python系列一之excel的读取

2024-05-04 14:44

本文主要是介绍Python系列一之excel的读取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

使用的库的版本如下:

  • xlsx==1.2.6
  • xlrd==1.1.0

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()

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)

这篇关于Python系列一之excel的读取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959439

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及