使用python库实现Excel数据追加
时间: 2025-06-28 15:10:38 浏览: 9
### 使用 Pandas 和 Openpyxl 将数据追加到 Excel 文件
为了将数据追加到现有的 Excel 文件,可以采用两种主要方法:一种是通过 `pandas` 库配合 `openpyxl` 来操作;另一种则是直接利用 `openpyxl` 进行更底层的操作。
#### 方法一:使用 Pandas 配合 Openpyxl
当使用 `pandas` 处理 Excel 文件时,默认情况下会覆盖现有文件中的内容。为了避免这种情况并实现真正意义上的追加功能,可以通过读取原始工作表的内容作为 DataFrame 对象,再将其与新数据合并后重新写入文件:
```python
import pandas as pd
# 假设 new_data 是要追加的数据框
new_data = pd.DataFrame({'A': [1], 'B': [2]})
with pd.ExcelWriter('output.xlsx', mode='a', engine="openpyxl") as writer:
# 如果希望向特定的工作表中追加,则指定 sheet_name 参数
new_data.to_excel(writer, index=False, header=False, startrow=writer.sheets['Sheet1'].max_row)
```
此代码片段展示了如何打开一个已存在的 Excel 文件 (`'output.xlsx'`) 并以附加模式(`mode='a'`) 写入新的数据帧 `new_data` 到名为 `'Sheet1'` 的工作表中[^1]。
#### 方法二:仅使用 Openpyxl 实现更加灵活的控制
对于某些复杂场景下可能需要对单元格级别有更多的掌控力,在这种情况下可以直接调用 `openpyxl` API 完成任务:
```python
from openpyxl import load_workbook
wb = load_workbook(filename='output.xlsx')
ws = wb.active # 获取活动工作表
for row in ws.iter_rows(min_col=0, max_col=len(new_data.columns)):
for cell in row:
pass # 可在此处处理每一列的具体逻辑
last_row = ws.max_row + 1
for col_num, value in enumerate(list(new_data.iloc[0]), 1):
_cell = ws.cell(row=last_row, column=col_num, value=value)
wb.save('output.xlsx') # 记得保存更改后的文档
```
上述例子说明了如果只想要简单地把一行记录添加到最后的话应该如何做。当然也可以根据实际需求调整循环体内的具体行为来满足不同的业务要求。
阅读全文
相关推荐


















