如果使用 openxlpy 则嵌套

Nested if with openxlpy

for status in sheet['E']:
   if status.value == 'completed':
      for price in sheet['G']:
         print(price.value)

似乎 if 语句不起作用,因为所有 price.value 都在打印。我错过了什么?

E
---------
completed
cart
None
completed
processing
completed

G
----------
120
30

300
50
450

我想打印状态为 completed.so 的价格,预期结果为:

120, 300, 450

像这样的东西应该可以工作:

import openpyxl

wb = openpyxl.load_workbook('C:/workbook.xlsx')
ws = wb.get_sheet_by_name('Sheet1')
for i in range(1, 10): # You can use 32767 to get all rows
    if ws.cell(row=i, column=5).value == "completed": # column 5 is column E
        print(ws.cell(row=i, column=7).value) # column 7 is column G

编辑

似乎 openpyxl 使用基于 1 的索引,而不是基于 0 的索引。因此,相应地调整值。