在用python的xlrd库读取xlsx文件时,出现些小问题,搜到了一些解决方法,做了个小笔记,方便以后查找,与大家分享
✨✨专栏:《每天干掉一个小bug》
# year score amount total
# 2020 普通高考文科 648 16 16 湖北
# 2020 普通高考文科 647 3 19 湖北
# 2020 普通高考文科 646 3 22 湖北
# 2020 普通高考文科 645 6 28 湖北
# 2020 普通高考文科 644 4 32 湖北
import xlrd
def excel_read():
"""定义了一个读取excel的函数"""
wb = xlrd.open_workbook('scale_hb_2016_2020.xlsx') # 打开Excel文件
sheet = wb.sheet_by_name('Sheet1') # 通过excel表格名称(rank)获取工作表
# year = [] # 创建空list,用来保存一列
# types = []
score = []
amount = []
total = []
# area = []
for i in range(sheet.nrows): # 循环读取表格内容,每次读取一行数据
cells = sheet.row_values(i) # 每行数据赋值给cells
score_ = cells[2] # 循环读取cell没一列的数据,cell[0]就是包含了每一行的人物名称
amount_ = cells[3] # 获取amount列数据
total_ = cells[4]
# 将每一列的数据依次保存在score, amount, total里。
score.append(score_)
amount.append(amount_)
total.append(total_)
return score, amount, total # 返回三列的数据
A = excel_read() # 这里调用了excel_read的函数,此A就包含了score, amount, total三列数据
print(A[0])
print(A[1])
print(A[2])
安装的 xrld 的版本过高,不支持 xlsx 格式的Excel文件
书接上回,在解决高版本打不开 .xlsx 文件时,采用降低 xlrd 版本后,在python3.9之后,删除了 getiterator 方法,老版本的 xlrd 库调用 getiterator 方法时会报错:AttributeError: ‘ElementTree’ object has no attribute ‘getiterator’
找到并打开 xlrd 库目录下的 xlsx.py文件,把里面两个地方的 getiterator() 该成 iter()