excelwriter 导入新的sheet覆盖原sheet ,不改变其他sheet
时间: 2023-08-25 12:28:11 浏览: 71
你可以使用 `openpyxl` 库来实现这个功能。首先,你需要使用 `load_workbook` 方法加载你的 Excel 文件,然后使用 `active` 属性来选择你要覆盖的 Sheet。接着,你可以使用 `delete_cols` 和 `delete_rows` 方法来删除该 Sheet 上的所有数据。最后,使用 `create_sheet` 方法创建一个新的 Sheet,并将数据写入该 Sheet。以下是一个示例代码:
```python
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
# 加载 Excel 文件
workbook = load_workbook('example.xlsx')
# 选择要覆盖的 Sheet
sheet = workbook.active
# 删除 Sheet 上的所有数据
max_row = sheet.max_row
max_column = sheet.max_column
for row in range(1, max_row + 1):
for col in range(1, max_column + 1):
cell = sheet.cell(row=row, column=col)
cell.value = None
sheet.title = 'New Sheet'
# 写入数据到新的 Sheet
for row in range(1, 11):
for col in range(1, 11):
cell = sheet.cell(row=row, column=col)
cell.value = f'{get_column_letter(col)}{row}'
# 保存文件
workbook.save('example.xlsx')
```
在这个示例代码中,我们首先加载了名为 `example.xlsx` 的 Excel 文件,并选择了要覆盖的 Sheet。然后,我们使用两个 for 循环和 `cell.value = None` 语句删除了该 Sheet 上的所有数据。接着,我们使用 `create_sheet` 方法创建了一个新的 Sheet,并将其命名为 `'New Sheet'`。最后,我们使用两个 for 循环和 `cell.value = f'{get_column_letter(col)}{row}'` 语句将数据写入新的 Sheet。最后,我们使用 `workbook.save` 方法将更改保存回 Excel 文件。