用python语言的openpyxl库实现:给定一个目录,把给定目录的所有Excel文件内容合并到一个Excel文件的同一个工作表中。假设所有 Excel 包含同样数量的列,第一行为表头,且不存在合并单元格或其他特殊格式。
时间: 2024-02-17 22:03:11 浏览: 88
好的,这是一个比较常见的需求,可以通过以下方式实现:
1. 导入必要的库和模块:
```python
import os
from openpyxl import Workbook, load_workbook
```
2. 定义一个函数,用于遍历给定目录下的所有 Excel 文件,并将它们的内容合并到一个新的 Excel 文件中:
```python
def merge_excel_files(directory, output_file):
# 创建一个新的 Workbook 对象
merged_workbook = Workbook()
# 获取新 Workbook 对象的活动工作表
merged_sheet = merged_workbook.active
# 遍历给定目录下的所有 Excel 文件
for filename in os.listdir(directory):
if filename.endswith('.xlsx'):
# 加载 Excel 文件
filepath = os.path.join(directory, filename)
workbook = load_workbook(filepath)
sheet = workbook.active
# 将当前工作表的内容复制到新的工作表中
for row in sheet.iter_rows():
values = [cell.value for cell in row]
merged_sheet.append(values)
# 保存新的 Excel 文件
merged_workbook.save(output_file)
```
3. 调用上述函数,传入目录和输出文件名:
```python
directory = '/path/to/excel/files'
output_file = 'merged.xlsx'
merge_excel_files(directory, output_file)
```
注意,这种方法假设所有 Excel 文件都包含同样数量的列,第一行为表头,且不存在合并单元格或其他特殊格式。如果 Excel 文件不符合这些条件,可能需要对代码进行修改。
阅读全文