一、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 xlrd
def read_excel_data(sheet_page_paramas):
"""
使用 xlrd 读取 excel 文件内容
1、sheet_page_paramas:传入 string 类型的 "all" ,表示读取所有sheet的数据
2、sheet_page_paramas:传入 list 类型的 [1,3],表示仅读取第二页和第四页的数据
"""
data_list = []
xlsx_path = r"./你的excel文件路径.xlsx"
book = xlrd.open_workbook(xlsx_path)
sheet_num = book.nsheets
print(f"当前Excel文件,共有 {sheet_num} 页\n")
if sheet_page_paramas == "all":
for i in range(sheet_num):
sheet = book.sheet_by_index(i)
sheet_name = sheet.name
print(f">>>>>>>>>>>>>>>>>> 正在读取第{i + 1}个sheet,名为《{sheet_name}》的数据 <<<<<<<<<<<<<<<<<<")
for norw in range(1, sheet.nrows):
value = sheet.row_values(norw)
data_list.append(value)
print(f"当前读取第 {norw} 行的数据,数据内容为:\n{value}\n")
return data_list
elif isinstance(sheet_page_paramas, list):
for i in list(sheet_page_paramas):
if 0 <= i <= sheet_num:
sheet = book.sheet_by_index(i)
sheet_name = sheet.name
print(f">>>>>>>>>>>>>>>>>> 正在读取第{i + 1}个sheet,名为《{sheet_name}》的数据 <<<<<<<<<<<<<<<<<<")
for norw in range(1, sheet.nrows):
value = sheet.row_values(norw)
data_list.append(value)
print(f"当前读取第 {norw} 行的数据,数据内容为:\n{value}\n")
else:
raise IndexError(f"传入的sheet页码:{i},超过最大页码:{sheet_num}")
return data_list
else:
raise TypeError(f"传入的excel_sheetpages数据类型错误,应为list或者指定string参数->all,\n目前入参类型为::{type(sheet_page_paramas)}")
if __name__ == '__main__':
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78