Python循环excel工作表打印单元格值

2024-09-25 02:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图在一张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作为输出,这显然是错误的,因为数据不在同一行中


Tags: 数据forvaluecount错误columnitemmax
2条回答

解决此问题的最简单方法是将文件保存为.csv

然后运行:

import csv
with open(<YOUR_CSV_FILE_NAME>) as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)

从这里开始,您可以随意使用“row”变量

您正在打印诸如name1email2desc3之类的值,这说明您在列和行上都是递增的。这是因为您正在增加嵌套for循环中的i,而不是外部循环中的i

尝试在while循环中增加它。E、 g,像这样的:

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

相关问题 更多 >