如何用python把多个excel文件自动合并到一个文件中

首先,我们定义一个包含需要合并的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
mengvlog 阅读 34 次 更新于 2025-09-10 04:06:42 我来答关注问题0
  •  文暄生活科普 【python】关于__aenter__和__aexit__函数

    一、__aenter__方法作用:当使用async with语句进入异步上下文管理器时,会调用__aenter__方法。这个方法通常用于初始化资源或执行进入上下文前的准备工作。返回值:__aenter__方法应该返回一个awaitable对象(通常是另一个异步函数或协程),其解析结果将绑定到async with语句的as子句中的变量上。如果...

  • 在Python线程中引发异常是一种常用的退出线程的方法。`PyThreadState_SetAsyncExc`函数可以实现这一目的,但其主要作用是为线程退出执行“计划”,并不会立即杀死线程,尤其是当线程正在执行外部C库函数时。尝试使用`sleep(100)`等阻塞函数时,直接使用`async_raise`函数杀死线程可能并不有效,因为如果线程...

  •  翡希信息咨询 Python基础系列讲解——try_except异常处理机制

    多异常处理:try/except结构中,try块仅有一个,但except块可以有多个,以针对不同类型的异常提供不同的处理方式。例如,可以分别为FloatingPointError和IOError异常提供具体的处理逻辑。异常信息查看:若要查看详细的异常信息,可以导入traceback模块,并使用traceback.print_exc函数打印异常信息。traceback.pr...

  •  科技时代17 python context 使用

    一、context使用语法 context 与 with 一块使用,也可以附加一个 as 语句,如下:二、context 工作原理 __exit__ 方法有3个参数exc_type, exc_value, exc_tb,无论 code block 中的代码在执行中是否有异常都会执行 __exit__ 方法。如果 code block 中的代码有抛异常,__exit__ 方法的3个参数...

  •  翡希信息咨询 pycharm问题收集(一)

    使用except Exception as e,将异常类型赋值给变量e。Windows CMD切换目录路径:使用cd /d xxx命令切换盘符和目录。解决getpass不生效问题:使用PyCharm的“输出控制台中模拟终端”功能。或在cmd窗口运行python命令。Python多行字符串处理:在末尾加上以表示字符串未结束,继续到下一行。pip下载慢:切换至...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部