feat(merge_excel.py): 添加脚本以合并包含"交易流水"工作表的Excel文件

Co-authored-by: aider (ollama/qwen3-coder:30b) <aider@aider.chat>
This commit is contained in:
2026-06-05 20:31:12 +08:00
parent 6c752551ed
commit ab0c707711
+74
View File
@@ -0,0 +1,74 @@
import os
import sys
import pandas as pd
from pathlib import Path
def merge_excel_files(input_dir):
"""
合并指定目录下所有包含"交易流水"工作表的Excel文件
"""
# 创建输出文件路径
output_file = os.path.join(input_dir, "txn_summary.xlsx")
# 存储所有数据的列表
all_data = []
# 遍历输入目录中的所有文件
for filename in os.listdir(input_dir):
if filename.endswith(('.xlsx', '.xls')):
file_path = os.path.join(input_dir, filename)
try:
# 读取Excel文件的所有工作表
excel_file = pd.ExcelFile(file_path)
# 检查是否包含"交易流水"工作表
if "交易流水" in excel_file.sheet_names:
# 读取"交易流水"工作表
df = pd.read_excel(file_path, sheet_name="交易流水")
# 检查数据是否为空
if not df.empty:
# 添加源文件名列
df['来源文件'] = filename
# 将数据添加到列表中
all_data.append(df)
else:
print(f"警告: 文件 {filename} 中的'交易流水'工作表为空")
except Exception as e:
print(f"处理文件 {filename} 时出错: {e}")
# 如果没有找到任何匹配的文件,退出
if not all_data:
print("未找到包含'交易流水'工作表的Excel文件或所有文件都为空")
return
# 合并所有数据
merged_df = pd.concat(all_data, ignore_index=True)
# 保存合并后的数据到输出文件
merged_df.to_excel(output_file, index=False)
print(f"成功合并 {len(all_data)} 个文件,结果已保存到: {output_file}")
def main():
# 从命令行参数获取输入目录路径
if len(sys.argv) != 2:
print("请提供输入目录路径作为命令行参数")
print("使用方法: python merge_excel.py <input_directory>")
return
input_dir = sys.argv[1]
# 检查输入目录是否存在
if not os.path.isdir(input_dir):
print(f"错误: 目录 '{input_dir}' 不存在")
return
# 合并Excel文件
merge_excel_files(input_dir)
if __name__ == "__main__":
main()