python - Openpyxl:如何解决 .iter_cols 不支持的操作数错误
问题描述
我在从两个不同的工作表中检索特定行中多列的单元格值时遇到问题。我正在尝试遍历两个工作表的第一列,其中包含无序的键值。一旦我遍历所有键值并在两个工作表中找到匹配值的单元格位置,我调用我的 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]
解决方案
在column_name
函数中,最后一个参数uniqueID
是传递给min_row
and的参数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'
推荐阅读
- ios - ISplitViewController:DetailViewController 可以从 MasterVIewController 加载数据而无需返回吗?
- python - 如何将 QTabBar 中的图标居中?
- python - 如何分组数据框并将列用作值
- django - 如何在Django中制作类似矩阵的表格
- javascript - 当缓存被硬重新加载时,我的 toggleClass 函数有时仅适用于我的 JSON 创建的字段
- javascript - 如何检查传递的对象是否是 MarkLogic 中的有效 JSON?
- jquery - 单击焦点图像以外的任何其他位置后,是否有任何保持 .class:focus{--} 属性的 CSS 属性
- javascript - *ngFor - 无法动态呈现项目 - Angular 6 - Mat-menu 按钮
- jenkins-x - 无法提取图像“draft:dev”
- android - 如何在我的 Flutter 项目中迁移到 AndroidX?