Python+xlrd:实现Excel文件内容读取(全文件or指定sheet页)
一、xlrd常用方法简述:
代码示例 | 方法释义 |
---|---|
book = xlrd.open_workbook(xlsx_path) | 实例化工作簿对象 book |
sheet_num = book.nsheets | 获取当前文件的sheet页码(总页数) |
sheet = book.sheet_by_index(2) | 通过页码下标,实例化 第三页页码表格 对象 |
sheet = book.sheet_by_index(2).name | 通过sheet页下标,获取第三个sheet页的名称 |
value = sheet.row_values(2) | 获取sheet页指定第三行的数据 |
二、封装代码实现如下:
import xlrddef read_excel_data(sheet_page_paramas):"""使用 xlrd 读取 excel 文件内容1、sheet_page_paramas:传入 string 类型的 "all" ,表示读取所有sheet的数据2、sheet_page_paramas:传入 list 类型的 [1,3],表示仅读取第二页和第四页的数据"""# 准备一个空列表,用来存储文件读取的数据data_list = []# .open_workbook():固定方法,读取传入的目录文件xlsx_path = r"./你的excel文件路径.xlsx"# 实例化工作簿对象 bookbook = xlrd.open_workbook(xlsx_path)# .nsheets 方法:获取当前文件的的sheet页数量sheet_num = book.nsheetsprint(f"当前Excel文件,共有 {sheet_num} 页\n")# 传入的sheet页码参数为:all 时,表示需要读取所有sheet页的数据if sheet_page_paramas == "all":for i in range(sheet_num):# 通过页码下标,实例化 对应页码表格 对象sheet = book.sheet_by_index(i)sheet_name = sheet.nameprint(f">>>>>>>>>>>>>>>>>> 正在读取第{i + 1}个sheet,名为《{sheet_name}》的数据 <<<<<<<<<<<<<<<<<<")# 循环遍历 sheet 页的每一行数据for norw in range(1, sheet.nrows):# 读取 excel 指定行的数据value = sheet.row_values(norw)# 将读取的数据,存储于空列表 data_list[] 中data_list.append(value)print(f"当前读取第 {norw} 行的数据,数据内容为:\n{value}\n")# 循环结束后,返回存储测试用例的列表 data_list[]return data_listelif isinstance(sheet_page_paramas, list):for i in list(sheet_page_paramas):if 0 <= i <= sheet_num:# .sheet_by_index(下标):实际页码下标为传入的页面 -1sheet = book.sheet_by_index(i)sheet_name = sheet.nameprint(f">>>>>>>>>>>>>>>>>> 正在读取第{i + 1}个sheet,名为《{sheet_name}》的数据 <<<<<<<<<<<<<<<<<<")# 循环遍历sheet页的每一行数据for norw in range(1, sheet.nrows):value = sheet.row_values(norw)# 将读取的数据,存储于空列表 data_list[] 中data_list.append(value)print(f"当前读取第 {norw} 行的数据,数据内容为:\n{value}\n")else:raise IndexError(f"传入的sheet页码:{i},超过最大页码:{sheet_num}")# 循环结束后,返回存储测试用例的列表 data_list[]return data_listelse:raise TypeError(f"传入的excel_sheetpages数据类型错误,应为list或者指定string参数->all,\n目前入参类型为::{type(sheet_page_paramas)}")if __name__ == '__main__':# print("控制台输出Excel文件全sheet页数据:\n",read_excel_data("all"))print("控制台输出指定页码数据:\n",read_excel_data([1]))""" 以下为代码执行结果:"""
/opt/homebrew/bin/python3.9 当前Excel文件,共有 2 页>>>>>>>>>>>>>>>>>> 正在读取第2个sheet,名为《成绩表》的数据 <<<<<<<<<<<<<<<<<<
当前读取第 1 行的数据,数据内容为:
['语文', '张三', 99.0]当前读取第 2 行的数据,数据内容为:
['数学', '李四', 55.0]当前读取第 3 行的数据,数据内容为:
['英语', '王五', 70.0]控制台输出指定页码数据:[['语文', '张三', 99.0], ['数学', '李四', 55.0], ['英语', '王五', 70.0]]Process finished with exit code 0
Python+xlrd:实现Excel文件内容读取(全文件or指定sheet页)相关推荐
- Python读取.txt文档内容/读取text文件内容
Python读取.txt文档内容/读取text文件内容; 读取txt后缀文件的内容的两种方式,简约易懂,复制粘贴即可食用,节约你宝贵的时间 文档全部数据一次性读取 # -*- coding: UTF- ...
- Python文件内容读取成绩单,计算出平均分并且写入原文件存储
python文件内容读取成绩单,计算出平均分并且写入原文件存储 文件内容如下:( 格式参考下表, 内容自己定义) 姓名 语文 数学 英语 aaa 80 70 65 bbb 85 88 90 ccc 7 ...
- 【Python基础】生成.pkl文件,读取.pkl文件的内容
保存 def save_dict(data, name):with open(name + '.pkl', 'wb') as f:pickle.dump(data, f, pickle.HIGHEST ...
- EXCEL宏根据指定行数来切割excel文件内容成新文件
EXCEL宏根据指定行数来切割excel文件内容成新文件 宏内容 Sub splitexcel() Dim r, c, i, totalhangshu, fileshu, bt As Long App ...
- 关于ePass1000在B/S结构下的文件内容读取(VBSCRIPT)
因为公司使用的飞天诚信公司ePass1000的USBKEY,在B/S下无法采用像C/S下通过调用其提供的动态库的方法实现从USBKEY中读取其文件内容的方法.而且,由飞天诚信公司提供的帮助文档也写得过 ...
- Python 将数据写入pkl文件,读取pkl文件
Python 将数据写入pkl文件,读取pkl文件 写入pkl文件 data = {"name": ["李明", "胡莉"]} with o ...
- 【Excel VBA】批量拆分工作表为独立文件批量复制文件内容到总文件的工作表
一.将一个工作簿中所有工作表单独保存为独立的文件 操作过程分三步:选中要复制的sheet,,复制(建立副本),保存后关闭新文件 Sub sheet2file()Dim sht As Worksheet ...
- java读取sheet2_java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)
java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本) 在http://download.csdn.net/detail/u010792467/8072015下载所需 ...
- C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件
这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...
- linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行
文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...
最新文章
- Redis 限流的 3 种方式,还有谁不会!
- vue-cli 自定义指令directive 添加验证滑块
- android onclick执行顺序,错误“无法执行android:onClick的方法”
- libuuid 安装
- python基础逻辑判断语句(九)
- 鸿蒙生态与苹果生态有什么区别,华为想用鸿蒙统一生态,苹果直接用芯片大一统,走到华为前面?...
- 芯片14纳米与7纳米相比,是不是芯片大一点,性能差不太多呢?
- scut协议配置工具初始化的一些问题
- html5 background-size,css3 Background-size属性使用说明
- (EasyX入门与实战)第五章 添加音乐
- 【资源分享】ppt的模版获取-可用于转正答辩、毕业答辩、课程答辩等等
- 树莓派4B 安装卸载pip、pip3
- 编写程序,求柱体的体积:
- 编写一个压缩软件(Java实现版本)
- 研究人员发现英特尔芯片组中可能被黑客使用的“新功能”VISA
- wustoj1296
- android-Intent,Injector,Template,Adapter,Validation,Gesture,Game,Game Engine,Bluetooth...
- 基于AD7705的超高精度电压采集电路板 4路电压采集端口,通过前端通过AD620运算放大器输出至AD5505通过STM32F030数据处理
- 能源实现物联网云平台方案
- Java---NullPoint经验解析
热门文章
- 计算机知识和操作技能,《计算机基础知识与操作技能》毕文才 编_孔网
- 有没有免版面费的省级的期刊?
- anaconda无法打开显示there is an instance of anaconda navigator already running ——如何解决
- 拜佛、念佛要怎么拜、念?是不是要观想呢
- WIFI的AP(Access Point)和STA(Station)指什么
- 听风的插件-你好艾泽拉斯
- 分享几个免费壁纸网址
- 中国央视网---中国公开课
- 安卓暗黑模式软件_优酷App ios版和Android 10版:支持暗黑模式使用[多图]
- win10自带恶意软件删除工具