AttributeError: 'Sheet' object has no attribute 'iter_rows'
时间: 2023-08-04 19:05:19 浏览: 322
对不起,我之前给出的代码中使用了错误的方法。在openpyxl中,Sheet对象没有名为`iter_rows()`的属性。
要在openpyxl中获取特定范围内单元格的值,可以使用`iter_cols()`和`iter_rows()`方法。以下是一个示例代码,展示如何解决这个问题:
```python
import openpyxl
# 打开Excel文件
workbook = openpyxl.load_workbook('your_file.xlsx')
# 选择第一个工作表
sheet = workbook.active
# 获取第2列的倒数第一行到倒数第六行的值
column2_values = [cell.value for cell in sheet['B'][-6:-1]]
# 获取第3列到第10列的双数列
double_columns = [column for idx, column in enumerate(sheet.iter_cols(min_col=3, max_col=10)) if (idx+3) % 2 == 0]
# 遍历每一行,将最小值赋值给第2列的对应位置
for i, row in enumerate(double_columns, start=-5):
min_value = min([cell.value for cell in row])
sheet.cell(row=i, column=2).value = min_value
# 保存修改后的Excel文件
workbook.save('your_file.xlsx')
```
在上述代码中,我们使用`sheet['B'][-6:-1]`来获取第2列的倒数第一行到倒数第六行的单元格对象。然后,我们使用`sheet.iter_cols(min_col=3, max_col=10)`来获取第3列到第10列的单元格对象。注意,我们使用了`enumerate()`函数来获取循环索引,以便在计算列号时使用。最后,我们遍历每一行,找到最小值,并将其赋值给第2列对应的单元格。
请确保你已经正确安装了openpyxl库,并根据你的实际情况进行适当的调整。如果你遇到了其他问题,请提供更多上下文或具体的错误消息,以便我能够更好地帮助你解决问题。
阅读全文