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作为输出显然是错误的,因为数据不在同一行

您正在打印的值如name1email2desc3的事实表明您正在列和行上递增。 这是因为你正在增加嵌套的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