修改代码,可以合并多个Excel文件from openpyxl import load_workbook from openpyxl.utils import get_column_letter # 打开第一个Excel文件 wb1 = load_workbook('file1.xlsx') ws1 = wb1.active # 打开第二个Excel文件 wb2 = load_workbook('file2.xlsx') ws2 = wb2.active # 创建一个新的工作簿 wb3 = Workbook() ws3 = wb3.active # 复制第一个文件的内容到新的工作簿 for row in ws1.iter_rows(): for cell in row: ws3[cell.coordinate].value = cell.value # 复制第二个文件的内容到新的工作簿 for row in ws2.iter_rows(): for cell in row: column_letter = get_column_letter(cell.column) ws3[column_letter + str(cell.row)].value = cell.value # 保存新的工作簿 wb3.save('merged_file.xlsx')
时间: 2024-04-16 07:28:33 浏览: 170
openpyxl读写文件并做简单数据分析
您的代码基本上已经完成了多个Excel文件的合并,但是在复制第二个文件的内容时,有一个小错误。在使用`get_column_letter()`时,应该将其导入自openpyxl.utils而不是openpyxl模块。
以下是修改后的代码,以合并多个Excel文件:
```python
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl import Workbook
# 打开第一个Excel文件
wb1 = load_workbook('file1.xlsx')
ws1 = wb1.active
# 打开第二个Excel文件
wb2 = load_workbook('file2.xlsx')
ws2 = wb2.active
# 创建一个新的工作簿
wb3 = Workbook()
ws3 = wb3.active
# 复制第一个文件的内容到新的工作簿
for row in ws1.iter_rows():
for cell in row:
ws3[cell.coordinate].value = cell.value
# 复制第二个文件的内容到新的工作簿
for row in ws2.iter_rows():
for cell in row:
column_letter = get_column_letter(cell.column)
ws3[column_letter + str(cell.row)].value = cell.value
# 保存新的工作簿
wb3.save('merged_file.xlsx')
```
在上述代码中,我们首先打开两个Excel文件(file1.xlsx和file2.xlsx),然后创建一个新的工作簿wb3。接下来,我们使用两个嵌套的循环遍历每个单元格,并将其值复制到新工作簿ws3中。注意在复制第二个文件内容时,我们使用了`get_column_letter()`来获取列字母。
最后,我们保存合并后的工作簿为merged_file.xlsx。
希望这次的修改能满足您的需求!如果还有其他问题,请随时提问。
阅读全文