如何在OpenPyXL中避免覆盖已有数据插入新列?
时间: 2024-09-29 16:16:14 浏览: 51
在OpenPyXL中,当你想在已有的工作表中插入新列而不覆盖现有数据时,应该在适当的位置追加新的行,而不是直接插入列。这里有一个例子:
```python
from openpyxl import Workbook
# 加载或创建工作簿
wb = load_workbook('example.xlsx') if os.path.exists('example.xlsx') else Workbook()
ws = wb['Sheet1'] # 或者选择特定的工作表
# 获取你要插入新列的行数,这里假设我们从第二行开始
start_row = 2
# 获取新列的索引,例如从A列开始
new_column_index = 'A'
# 将新列名称插入到对应位置,比如插入到B列之后
for row_num in range(start_row, ws.max_row+1): # 从start_row到最后一行
ws.cell(row=row_num, column=new_column_index).value = ws.cell(row=row_num, column='B').value + '_new_column' # 假设我们要在B列基础上追加'_'前缀
# 保存更改
wb.save('example.xlsx')
阅读全文