Python循环excel表单打印单元格值
我试图通过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
与上面的代码之前超出范围错误我得到的名称1,电子邮件2,desc3作为输出显然是错误的,因为数据不在同一行
您正在打印的值如name1
, email2
, desc3
的事实表明您正在列和行上递增。 这是因为你正在增加嵌套的for循环中,而不是在外部。
尝试在while循环中增加它。 例如,这样的事情:
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
解决这个问题的最简单方法是将文件保存为.csv
然后运行:
import csv with open(<YOUR_CSV_FILE_NAME>) as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row)
从这里你可以随意使用“row”variables