本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
在日常工作中,我们经常需要处理多个Excel文件的合并问题。这项任务不仅耗时费力,还容易因手动操作而导致数据错误。特别是当数据量大、文件多的情况下,这种问题更加突出。
本文将带领大家通过CodeBuddy
智能编程助手,快速编写一个Python脚本,实现多个Excel表格的一键合并,让繁琐的数据整合工作变得简单高效。无论你是数据分析师、财务人员还是办公室职员,这个工具都能大大提升你的工作效率!
如下图所示,我们本地有多个Excel文件,每个文件都有相同的表头结构,但包含不同的数据内容。我们需要将这些文件合并成一个统一的Excel文档,以便于数据查看和统计分析。
向CodeBuddy
输入我们的需求描述:
需求如下:我的一个文件夹内存在多个excel文件, 且这些文件的第一行的表头是一致的, 我想将这些excel文件合并成一个excel, 并且共用一个表头, 如何编写该py脚本
CodeBuddy
会根据我们的提示词快速生成一份符合需求的代码,如下图所示:
重要提示:使用AI助手时,不仅要关注生成的代码,还应该仔细阅读其提供的分析和说明,这些内容往往包含重要的使用提示和技术细节。
我们可以看到,CodeBuddy
提供了一个无需UI界面操作的脚本,这正是我们所需要的高效解决方案。接下来,我们将这段代码复制到项目中,并根据实际情况修改输入和输出路径。
当我们运行初始代码时,发现脚本仍然要求用户手动选择输入文件目录,这与我们希望的自动化处理不符:
我们将问题反馈给CodeBuddy
,提出新的需求:
修改项目代码,使其根据我定义好的目录进行读取与输出
CodeBuddy
根据我们的新需求重新生成了更符合要求的代码。这次修改后的代码不再需要用户交互,而是直接使用预定义的路径进行文件处理。
我们运行优化后的代码,效果如下:
程序成功执行,并生成了合并后的Excel文件:
通过查看合成的Excel文件,我们确认所有数据都已正确合并,表头也保持一致,完美达成了我们的需求目标!
为了方便学习和使用,这里提供完整的源代码:
import os
import pandas as pd
def merge_excel_files(input_folder, output_file):
"""
合并多个具有相同表头的Excel文件
参数:
input_folder: 包含Excel文件的文件夹路径
output_file: 合并后的输出文件路径
"""
# 获取所有Excel文件
excel_files = [f for f in os.listdir(input_folder)
if f.endswith(('.xls', '.xlsx', '.xlsm', '.xlsb'))]
if not excel_files:
print("错误: 没有找到Excel文件")
return False
# 读取第一个文件获取表头
first_file = os.path.join(input_folder, excel_files[0])
try:
header = pd.read_excel(first_file, nrows=0).columns.tolist()
print(f"表头: {header}")
except Exception as e:
print(f"错误: 无法读取第一个文件的表头 - {e}")
return False
# 创建一个空的DataFrame用于存储合并后的数据
merged_data = pd.DataFrame(columns=header)
# 合并所有文件
for file in excel_files:
file_path = os.path.join(input_folder, file)
try:
# 读取文件数据(跳过第一行表头)
df = pd.read_excel(file_path, skiprows=1, header=None)
df.columns = header # 设置相同的表头
merged_data = pd.concat([merged_data, df], ignore_index=True)
print(f"已合并: {file} (包含 {len(df)} 行数据)")
except Exception as e:
print(f"警告: 跳过文件 {file} - 错误: {e}")
continue
# 保存合并后的文件
try:
merged_data.to_excel(output_file, index=False)
print(f"\n合并完成! 共合并 {len(excel_files)} 个文件")
print(f"总行数: {len(merged_data)}")
print(f"已保存到: {output_file}")
return True
except Exception as e:
print(f"错误: 无法保存合并后的文件 - {e}")
return False
if __name__ == "__main__":
# 直接使用预定义的路径
INPUT_FOLDER = "./excel" # Excel文件所在目录
OUTPUT_FILE = "./merged.xlsx" # 合并后的输出文件路径
print("=== Excel文件合并工具 ===")
print(f"输入目录: {INPUT_FOLDER}")
print(f"输出文件: {OUTPUT_FILE}")
# 检查输入目录是否存在
if not os.path.exists(INPUT_FOLDER):
print(f"错误: 输入目录不存在 - {INPUT_FOLDER}")
exit()
# 执行合并
print("\n开始合并文件...")
success = merge_excel_files(INPUT_FOLDER, OUTPUT_FILE)
if success:
print("\n操作成功完成!")
else:
print("\n操作完成,但可能存在问题,请检查上述警告/错误信息")
这个脚本还可以根据实际需求进行进一步扩展,例如:
CodeBuddy
来完善代码的哦!!扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有