我正试图在一张excel表格中循环打印每一列中的值。然后下一行,打印列的值,直到文件结束。
我的数据看起来像
Name email desc date
name1 email1 desc1 date1
name2 email2 desc2 date2
name3 email3 desc3 date3
wb = load_workbook('example.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
row_count = sheet.max_row -1
column_count = sheet.max_column
i = 1
while (i <= row_count):
for item in sheet.iter_cols():
#for row in sheet.iter_cols():
first_value = item[i]
print (first_value.value)
i+=1
我得到的错误或元组索引超出范围,而且它也没有打印正确的数据。
first_value = item[i]
IndexError: tuple index out of range
上面的代码在超出范围错误之前 name1,email2,desc3作为输出,这显然是错误的,因为数据不在同一行中
解决此问题的最简单方法是将文件保存为.csv
然后运行:
从这里开始,您可以随意使用“row”变量
您正在打印诸如
name1
、email2
、desc3
之类的值,这说明您在列和行上都是递增的。这是因为您正在增加嵌套for循环中的i
,而不是外部循环中的i
。尝试在while循环中增加它。E、 g,像这样的:
相关问题 更多 >
编程相关推荐