首先,我们定义一个包含需要合并的Excel文件名称的列表。接下来,我们遍历这个列表中的每个文件,使用openpyxl库加载每个文件,并获取其中的所有工作表名称。对于每个工作表,我们首先检查它是否已经在目标文件中存在。如果存在,我们直接将数据复制到目标文件的相应位置。如果不存在,则在目标文件中创建一个新的...
如何用python把多个excel文件自动合并到一个文件中
在日常工作中,频繁处理Excel文件是一个常见的任务。例如,每天的日报、每周的周报以及其他各类数据表,这些表格往往需要重复地进行汇总和整理,这无疑是一种重复性劳动。为了提高效率,我决定利用Python编写一个小程序来自动将多个Excel文件合并到一个文件中。
在寻找合适的解决方案时,我查阅了大量关于Excel处理的Python库,最终选择了支持Python3的openpyxl库。安装这个库非常简单,只需执行命令<pip install openpyxl
即可。
开发环境设定为mac或win系统搭配Python3.5和PyCharm。下面我将分享具体的代码实现。这段代码的主要功能是将多个指定的Excel文件合并到一个文件中,同时保持原有的表格结构。
首先,我们定义一个包含需要合并的Excel文件名称的列表。接下来,我们遍历这个列表中的每个文件,使用openpyxl库加载每个文件,并获取其中的所有工作表名称。
对于每个工作表,我们首先检查它是否已经在目标文件中存在。如果存在,我们直接将数据复制到目标文件的相应位置。如果不存在,则在目标文件中创建一个新的工作表,并将数据复制过去。
具体实现代码如下:
#coding=gbk
import openpyxl
excel_data=['qihu.xlsx','baidu.xlsx']
# new=openpyxl.load_workbook('all.xlsx')
for excel_name in excel_data:
wb= openpyxl.load_workbook(excel_name,data_only=True)
sheet_name=wb.get_sheet_names() # print(sheet_name)
for work in sheet_name:
nb = openpyxl.load_workbook('all.xlsx',data_only=True)
newsheet_name = nb.get_sheet_names()
if work in newsheet_name :
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row+1):
for j in range(1,sheet.max_column+1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
else:
newsheet = nb.create_sheet(title=work)
name = nb.get_sheet_by_name(work)
sheet = wb.get_sheet_by_name(work)
for i in range(1,sheet.max_row+1):
for j in range(1,sheet.max_column+1):
# 获取整个sheet数据
data=sheet.cell(row=i,column=j).value
name.cell(column=j,row=i).value=data
print(name)
nb.save('all.xlsx') # print(newsheet_name)2024-11-30