提问人:ak40837 提问时间:7/2/2020 最后编辑:ak40837 更新时间:7/2/2020 访问量:1131
在使用 openpyxl 时,如何根据我在 Excel 工作表中迭代的行号创建动态变量?
How do I create a dynamic variable based on the row number I am iterating over in an Excel sheet while using openpyxl?
问:
我正在尝试遍历 Excel 工作表中的所有行,并根据当前正在迭代的单元格设置一个变量。以下是我正在使用的代码:
import openpyxl
from openpyxl import load_workbook
wb = openpyxl.load_workbook('workbook.xlsx', data_only=True)
queue = wb['Queue']
max_row = queue.max_row
for i in queue.iter_rows(min_row=2, max_row=max_row):
dynamic_cell = queue.cell(row=i, column=10).value
if dynamic_cell == 'ice cream':
# perform some operation
最初,我以为这篇文章在“按行迭代”部分下,有我正在寻找的答案:https://medium.com/aubergine-solutions/working-with-excel-sheets-in-python-using-openpyxl-4f9fd32de87f
但是,当我到达输入时:
dynamic_cell = queue.cell(row=i, column=10).value
我的输出是:
TypeError: '<' not supported between instances of 'tuple' and 'int'
我不确定如何解释这一点或尝试其他解决方案。任何关于如何制作工作的反馈将不胜感激!(:dynamic_cell
更新:从我收集到的信息来看,最有效的解决方案可能是根据 in 中的行数创建一个整数列表(参见:如何通过 while 循环动态创建变量?但是,我目前没有必要的经验来完成这项工作。我将继续寻找解决方案,同时定期查看这篇文章。max_row
答:
0赞
ak40837
7/2/2020
#1
根据 @Charlie Clark 的观察,解决方案:
import openpyxl
from openpyxl import load_workbook
wb = openpyxl.load_workbook('workbook.xlsx', data_only=True)
queue = wb['Queue']
max_row = queue.max_row
for i in queue.iter_rows(min_row=2, max_row=max_row):
dynamic_cell = i[9]
if dynamic_cell == 'ice cream':
# perform some operation
评论
i