Excel处理程序说明文档(京汉每月数据透视表)
1. 程序概述
这是一个基于Python和Tkinter开发的Excel文件处理工具,主要用于从Excel文件中提取特定列数据并生成数据透视表。该程序提供了简洁的图形用户界面,使用户能够轻松地导入Excel文件、处理数据并保存结果。
2. 主要功能
- 数据提取:从Excel文件中提取指定列(“动态代码”、“船代码”、“航次”、“尺寸”、“箱型”)
- 数据透视:基于提取的列生成数据透视表,并计算各组合的计数
- 结果输出:将原始提取数据和透视表结果保存到新的Excel文件中
- 用户友好界面:提供直观的操作界面,包含文件导入、结果查看和程序退出功能
3. 使用方法
3.1 程序界面
程序界面包含以下主要部分:
- 顶部标题:“Excel文件处理程序”
- 中部状态显示区:显示程序执行过程和状态信息
- 底部按钮区:包含"导入文件"、"打开文件"和"退出程序"三个功能按钮
- 操作说明区:提供简要的操作指引
3.2 操作步骤
-
导入文件
- 点击【导入文件】按钮
- 在弹出的文件选择对话框中选择要处理的Excel文件(支持.xlsx和.xls格式)
- 选择完成后,程序会提示您选择输出文件的保存位置和文件名
-
数据处理
- 选择保存位置后,程序会自动开始处理数据
- 处理过程中,状态显示区会实时更新处理进度
- 处理完成后,会弹出成功提示框
-
查看结果
- 处理完成后,【打开文件】按钮会变为可用状态
- 点击【打开文件】按钮可直接打开生成的Excel文件查看结果
-
退出程序
- 点击【退出程序】按钮关闭应用
4. 输出文件说明
生成的Excel文件包含两个工作表:
- sheet1(隐藏):包含从原始文件中提取的指定列数据
- sheet2(可见):包含基于提取数据生成的数据透视表,显示各组合的计数统计和总计
5. 错误处理
程序内置了错误处理机制,主要包括:
- 输入文件格式检查:确保选择的是有效的Excel文件
- 必要列检查:检查输入文件是否包含所有必需的列
- 异常捕获:处理过程中的异常会被捕获并显示在状态区,同时弹出错误提示框
6. 技术实现
6.1 使用的技术和库
- Python:核心编程语言
- Tkinter:用于构建图形用户界面
- Pandas:用于Excel文件读写和数据处理
- openpyxl:作为Pandas的Excel引擎
6.2 主要功能实现
数据提取和透视表生成
# 读取 Excel 文件
df = pd.read_excel(input_file)
# 提取指定列
selected_df = df[required_columns]
# 使用 groupby 生成透视表
pivot_df = selected_df.groupby(required_columns).size().reset_index(name="计数")
# 计算总计并添加总计行
total_count = pivot_df["计数"].sum()
total_row = pd.DataFrame([[""] * len(required_columns) + [total_count]],
columns=pivot_df.columns)
final_df = pd.concat([pivot_df, total_row], ignore_index=True)
Excel文件输出
# 写入 Excel 文件
with pd.ExcelWriter(output_file, engine="openpyxl") as writer:
selected_df.to_excel(writer, sheet_name="sheet1", index=False)
final_df.to_excel(writer, sheet_name="sheet2", index=False)
# 隐藏sheet1
writer.book["sheet1"].sheet_state = "hidden"
7. 系统要求
- 操作系统:Windows(支持使用os.startfile打开文件)
- Python环境:Python 3.x
- 必要库:tkinter, pandas, openpyxl
8. 注意事项
- 输入Excel文件必须包含以下列:“动态代码”、“船代码”、“航次”、“尺寸”、“箱型”
- 程序会自动隐藏输出文件中的sheet1,只显示包含透视表的sheet2
- 处理大型Excel文件可能需要较长时间,请耐心等待状态区的处理完成提示