'Worksheet' object has no attribute '_drawings'
时间: 2023-09-07 17:11:55 浏览: 71
这个错误通常是因为你正在使用openpyxl模块处理Excel文件时,文件中包含了图表或图片,但是openpyxl不支持图表和图片。解决这个问题的方法是使用xlrd或pandas等其他模块来处理包含图表和图片的Excel文件。如果你需要使用openpyxl模块,可以尝试先将Excel文件另存为不包含图表和图片的格式,再使用openpyxl进行处理。
相关问题
type object Worksheet has no attribute iter_rows
这个错误通常发生在使用openpyxl库操作Excel文件时,通常是因为你使用了一个openpyxl版本太低的语法。在openpyxl 3.0.0及以上版本中,`Worksheet`对象的`iter_rows`方法已经被弃用,取而代之的是`Worksheet`对象的`iter_rows()`方法。所以你需要将代码中所有的`iter_rows`方法改为`iter_rows()`方法即可。
例如:
```python
# 旧代码
for row in worksheet.iter_rows(min_row=2, max_row=5, min_col=2, max_col=5):
for cell in row:
print(cell.value)
# 新代码
for row in worksheet.iter_rows(min_row=2, max_row=5, min_col=2, max_col=5):
for cell in row:
print(cell.value)
```
'Worksheet' object has no attribute 'copy_worksheet'
这个错误通常表示你尝试在一个不支持 `copy_worksheet` 方法的对象上调用该方法。请确保你正在调用 `copy_worksheet` 方法的对象是 `Workbook` 类型的,而不是 `Worksheet` 类型的。
例如,你可以使用以下代码将一个工作表从一个工作簿复制到另一个工作簿:
```python
import openpyxl
# 打开原始工作簿和工作表
wb1 = openpyxl.load_workbook('original.xlsx')
ws1 = wb1['Sheet1']
# 创建新的工作簿和工作表
wb2 = openpyxl.Workbook()
ws2 = wb2.active
# 复制工作表到新的工作簿
openpyxl.utils.copy_worksheet(ws1, ws2)
# 保存新的工作簿
wb2.save('new.xlsx')
```
如果你仍然遇到问题,请检查你的代码,确保所有的对象都是正确的类型,并且它们都具有所需的方法和属性。
阅读全文