TypeError: Worksheet.iter_rows() got an unexpected keyword argument 'formula_values'
时间: 2023-09-25 18:13:23 浏览: 95
很抱歉,`Worksheet.iter_rows()` 方法在 openpyxl 2.6.2 及更早的版本中没有 `formula_values` 参数。你可以考虑升级你的 openpyxl 版本,或者使用其他方法来获取单元格的公式和值。下面是一个示例代码:
```
# 显示第一个工作表的内容
for row in self.record_sheet.iter_rows(min_row=2, values_only=True):
row_values = []
for cell in row:
# 如果该单元格是公式,则取该单元格的公式内容;否则直接取值
if cell is not None and isinstance(cell, str) and cell.startswith('='):
row_values.append(cell[1:])
else:
row_values.append(cell if cell is not None else "")
if all(not bool(cell) for cell in row_values):
continue
treeview1.insert("", tk.END, values=row_values)
# 显示第二个工作表的内容
for row in self.data_sheet.iter_rows(min_row=2, values_only=True):
row_values = []
for cell in row:
# 如果该单元格是公式,则取该单元格的公式内容;否则直接取值
if cell is not None and isinstance(cell, str) and cell.startswith('='):
row_values.append(cell[1:])
else:
row_values.append(cell if cell is not None else "")
if all(not bool(cell) for cell in row_values):
continue
treeview2.insert("", tk.END, values=row_values)
```
在代码中,我们使用 `Worksheet.iter_rows()` 方法并设置 `values_only=True` 参数来获取单元格的值。然后对每一个单元格进行判断,如果是公式,则将其公式内容添加到行数据中;否则直接添加单元格的值。最后将处理好的行数据添加到表格中显示即可。
阅读全文