遍历所有 rows/columns openpyxl 不再适用于新版本 >2.3.5

iterate through all rows/columns openpyxl not working anymore with new version >2.3.5

使用 2.3.5 版的 openpyxl 此代码有效:

from openpyxl import load_workbook

excel_file = load_workbook(excel_file_path,read_only=True)

sheet = excel_file["Sheet1"]

    mylist = []
    for row in sheet:
        for cell in row:
            mylist.append((cell.value, cell.row, cell.column))

我这样做是为了更快地处理我的大 excel 文件。但是从 2.4.x 开始的新版本不再有效,第一个 "for-loop" 立即中断,版本有什么变化?或者我如何使用最新版本的 openpyxl 做同样的事情?

这似乎只有在加载工作簿时将 read_only 参数设置为 True 时才会发生。 我的解决方法是使用 sheetmax_row 属性创建一个 range 值作为行索引循环:

from openpyxl import load_workbook

excel_file = load_workbook(excel_file_path,read_only=True)
sheet = excel_file["Sheet1"]

mylist = []
row_num = sheet.max_row

for row_index in range(1,row_num):
    for cell in sheet[row_index]:
        mylist.append((cell.value, cell.row, cell.column))

希望@CharlieClark 能对此有所启发。但与此同时,我希望这对您有所帮助。