AttributeError: 'NoneType' object has no attribute 'nrows'

AttributeError: 'NoneType' object has no attribute 'nrows'

我将对我的 xlsx 文件使用 nrows,但出现此错误: NoneType' object has no attribute 'nrows'

昨天,它工作正常,但是当我重写我的程序时,出现了这个错误。

我的代码是:

import xlrd
def read_excel_files(loc):
    file=xlrd.open_workbook(loc)
    sheet=file.sheet_by_index(0)
    
sheet=read_excel_files("C:/Users/****/Desktop/DataSet.xlsx")
dataset=[]
    
for i in range(0 , sheet.nrows):
    temp_list=[sheet.cell.value(i , 0), sheet.cell.value(i , 0)]
    dataset.append(temp_list)
    print(dataset)

read_excel_files() return 的值 None,因为它没有 return 语句。将 return sheet 添加到该函数将解决您的问题

正如 William 所说,返回变量 sheet 即可解决问题,这是您修改后的代码:

import xlrd
def read_excel_files(loc):
    file=xlrd.open_workbook(loc)
    sheet=file.sheet_by_index(0)
    return sheet

sheet=read_excel_files("C:/Users/****/Desktop/DataSet.xlsx")
dataset=[]

for i in range(0 , sheet.nrows):
    temp_list=[sheet.cell.value(i , 0), sheet.cell.value(i , 0)]
    dataset.append(temp_list)
    print(dataset)