一、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页)相关推荐

  1. Python读取.txt文档内容/读取text文件内容

    Python读取.txt文档内容/读取text文件内容; 读取txt后缀文件的内容的两种方式,简约易懂,复制粘贴即可食用,节约你宝贵的时间 文档全部数据一次性读取 # -*- coding: UTF- ...

  2. Python文件内容读取成绩单,计算出平均分并且写入原文件存储

    python文件内容读取成绩单,计算出平均分并且写入原文件存储 文件内容如下:( 格式参考下表, 内容自己定义) 姓名 语文 数学 英语 aaa 80 70 65 bbb 85 88 90 ccc 7 ...

  3. 【Python基础】生成.pkl文件,读取.pkl文件的内容

    保存 def save_dict(data, name):with open(name + '.pkl', 'wb') as f:pickle.dump(data, f, pickle.HIGHEST ...

  4. EXCEL宏根据指定行数来切割excel文件内容成新文件

    EXCEL宏根据指定行数来切割excel文件内容成新文件 宏内容 Sub splitexcel() Dim r, c, i, totalhangshu, fileshu, bt As Long App ...

  5. 关于ePass1000在B/S结构下的文件内容读取(VBSCRIPT)

    因为公司使用的飞天诚信公司ePass1000的USBKEY,在B/S下无法采用像C/S下通过调用其提供的动态库的方法实现从USBKEY中读取其文件内容的方法.而且,由飞天诚信公司提供的帮助文档也写得过 ...

  6. Python 将数据写入pkl文件,读取pkl文件

    Python 将数据写入pkl文件,读取pkl文件 写入pkl文件 data = {"name": ["李明", "胡莉"]} with o ...

  7. 【Excel VBA】批量拆分工作表为独立文件批量复制文件内容到总文件的工作表

    一.将一个工作簿中所有工作表单独保存为独立的文件 操作过程分三步:选中要复制的sheet,,复制(建立副本),保存后关闭新文件 Sub sheet2file()Dim sht As Worksheet ...

  8. java读取sheet2_java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)

    java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本) 在http://download.csdn.net/detail/u010792467/8072015下载所需 ...

  9. C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件

    这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...

  10. linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行

    文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...

最新文章

  1. Redis 限流的 3 种方式,还有谁不会!
  2. vue-cli 自定义指令directive 添加验证滑块
  3. android onclick执行顺序,错误“无法执行android:onClick的方法”
  4. libuuid 安装
  5. python基础逻辑判断语句(九)
  6. 鸿蒙生态与苹果生态有什么区别,华为想用鸿蒙统一生态,苹果直接用芯片大一统,走到华为前面?...
  7. 芯片14纳米与7纳米相比,是不是芯片大一点,性能差不太多呢?
  8. scut协议配置工具初始化的一些问题
  9. html5 background-size,css3 Background-size属性使用说明
  10. (EasyX入门与实战)第五章 添加音乐
  11. 【资源分享】ppt的模版获取-可用于转正答辩、毕业答辩、课程答辩等等
  12. 树莓派4B 安装卸载pip、pip3
  13. 编写程序,求柱体的体积:
  14. 编写一个压缩软件(Java实现版本)
  15. 研究人员发现英特尔芯片组中可能被黑客使用的“新功能”VISA
  16. wustoj1296
  17. android-Intent,Injector,Template,Adapter,Validation,Gesture,Game,Game Engine,Bluetooth...
  18. 基于AD7705的超高精度电压采集电路板 4路电压采集端口,通过前端通过AD620运算放大器输出至AD5505通过STM32F030数据处理
  19. 能源实现物联网云平台方案
  20. Java---NullPoint经验解析

热门文章

  1. 计算机知识和操作技能,《计算机基础知识与操作技能》毕文才 编_孔网
  2. 有没有免版面费的省级的期刊?
  3. anaconda无法打开显示there is an instance of anaconda navigator already running ——如何解决
  4. 拜佛、念佛要怎么拜、念?是不是要观想呢
  5. WIFI的AP(Access Point)和STA(Station)指什么
  6. 听风的插件-你好艾泽拉斯
  7. 分享几个免费壁纸网址
  8. 中国央视网---中国公开课
  9. 安卓暗黑模式软件_优酷App ios版和Android 10版:支持暗黑模式使用[多图]
  10. win10自带恶意软件删除工具