现在有4个文件,修改代码,对文件进行循环操作合并文件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')
时间: 2024-04-16 19:28:33 浏览: 167
openpyxl读写文件并做简单数据分析
要对多个文件进行循环操作并合并它们,您可以使用一个文件名列表,然后在循环中打开每个文件并将其内容复制到合并的工作簿中。以下是修改后的代码示例:
```python
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl import Workbook
# 创建一个新的工作簿
wb3 = Workbook()
ws3 = wb3.active
# 文件名列表
file_names = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx', 'file4.xlsx']
# 循环处理每个文件
for file_name in file_names:
# 打开当前文件
wb = load_workbook(file_name)
ws = wb.active
# 复制当前文件的内容到新的工作簿
for row in ws.iter_rows():
for cell in row:
ws3[cell.coordinate].value = cell.value
# 关闭当前文件
wb.close()
# 保存合并后的文件
wb3.save('merged_file.xlsx')
```
在上述代码中,我们首先创建了一个新的工作簿(Workbook)来存储合并后的数据。然后,我们定义了一个包含要处理的所有文件名的列表(file_names)。接下来,在循环中逐个打开每个文件,复制其内容到新的工作簿中。最后,我们保存合并后的工作簿为merged_file.xlsx。
请确保所有要合并的文件都位于同一目录下,并确保每个文件的数据结构相同,以便正确合并。
希望这次的修改满足了您的需求!如果还有其他问题,请随时提问。
阅读全文