sheet.nrows有一个错误的值 – python excel文件
发布时间:2020-12-20 13:37:30 所属栏目:Python 来源:网络整理
导读:我有一个非常奇怪的问题.我正在尝试从excel文件中读取一些数据,但属性nrows的值不正确.虽然我的文件有很多行,但它只返回2. 我在pydev eclipse工作.我不知道究竟是什么问题;一切都很好. 当我尝试通过索引手动访问其他行时,但我得到了索引错误. 我感谢任何帮助
我有一个非常奇怪的问题.我正在尝试从excel文件中读取一些数据,但属性nrows的值不正确.虽然我的文件有很多行,但它只返回2.
我在pydev eclipse工作.我不知道究竟是什么问题;一切都很好. 当我尝试通过索引手动访问其他行时,但我得到了索引错误. 我感谢任何帮助. 如果它有帮助,那就是我的代码: def get_data_form_excel(address): wb = xlrd.open_workbook(address) profile_data_list = [] for s in wb.sheets(): for row in range(s.nrows): if row > 0: values = [] for column in range(s.ncols): values.append(str(s.cell(row,column).value)) profile_data_list.append(values) print str(profile_data_list) return profile_data_list 解决方法
要确保您的文件没有损坏,请尝试使用其他文件;我怀疑xlrd是否有缺陷.
此外,我已经清理你的代码看起来更好一点.例如,if行> 0检查是不必要的,因为你可以在第一个位置迭代范围(1,sheet.nrows). def get_data_form_excel(address): # this returns a generator not a list; you can iterate over it as normal,# but if you need a list,convert the return value to one using list() for sheet in xlrd.open_workbook(address).sheets(): for row in range(1,sheet.nrows): yield [str(sheet.cell(row,col).value) for col in range(sheet.ncols)] 要么 def get_data_form_excel(address): # you can make this function also use a (lazily evaluated) generator instead # of a list by changing the brackets to normal parentheses. return [ [str(sheet.cell(row,col).value) for col in range(sheet.ncols)] for sheet in xlrd.open_workbook(address).sheets() for row in range(1,sheet.nrows) ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |