我在从两个不同的工作表中检索特定行中多列的单元格值时遇到问题。我正在尝试遍历包含无序键值的两个工作表的第一列。一旦我遍历所有键值并在两个工作表中找到匹配值的单元格位置,我就会调用我的 def column_name 函数来遍历该特定键值的一系列列(行单元格作为参数传递到我的函数;由 uniqueID 表示)。 [m1 and worksh1] 和 [m2 and worksh2] 代表工作簿中的工作表。如果有人可以帮助我解决以下错误,我将不胜感激。此错误出现在我的 column_name 函数的第一行。
for col_cells in workbk1.iter_cols(min_row=uniqueID,max_row=uniqueID,min_col=start,max_col=last):
错误: >文件 C:...\Python39\site-packages...openpyxl\worksheet\worksheet.py,第 516 行,在 _cells_by_col 中为范围内的行(min_row, max_row+ 1)。类型错误:+ 不支持的操作数类型:'Cell' 和 'int'
def column_name(workbk1, workbk2, uniqueID):
for col_cells in workbk1.iter_cols(min_row=uniqueID,max_row=uniqueID,min_col=start,max_col=last):
for cell in col_cells:
for col_cells2 in workbk2.iter_cols(min_row=uniqueID,max_row=uniqueID,min_col=start2,max_col=last2):
for cell2 in col_cells2:
[execute code]
答案 0 :(得分:1)
在 column_name
函数中,最后一个参数是 uniqueID
,它被传递给 min_row
和 max_row
。这意味着 unqiueID
应该是一个整数。但是在调用函数时,它被调用为 column_name(m1,m2,cell)
,我们将实际的 cell
对象作为 uniqueID
传递。
稍后在 openpyxl 中尝试 max_row+1
时,它失败并显示以下错误,因为 max_row
实际上是一个 Cell
:
TypeError: unsupported operand type(s) for +: 'Cell' and 'int'