考勤统计助手 (Attendance Counter)
这是一个基于 Rust + Tauri 开发的桌面应用程序,用于自动化处理学生考勤数据并生成月度费用报表。
核心功能
-
Excel 数据读取:
- 支持导入
.xlsx和.xls格式的考勤表。 - 自动识别表头中的日期列(支持 Excel 序列号日期格式)。
- 解析学生基本信息(入学年份、年级、班级、姓名)。
- 支持导入
-
智能数据处理:
- 考勤统计:自动统计每个学生每月的出勤次数(输入表中标记为
1即为出勤)。 - 费用计算:
- 思维班(班级名称包含"思维"):单价 30元/次。
- 其他班级:单价 24元/次。
- 月度汇总:自动按月份聚合数据,生成每月的次数和费用小计。
- 考勤统计:自动统计每个学生每月的出勤次数(输入表中标记为
-
报表生成:
- 生成格式化的 Excel (
.xlsx) 报表。 - 样式还原:完美复刻目标模板的视觉风格(宋体、蓝色表头、边框、居中对齐)。
- 自动公式:生成的表格包含 Excel 公式(
=PRODUCT(...)和=SUM(...)),方便后续手动修改数据时自动更新合计。 - 智能保存:
- 默认保存在应用同级目录。
- 若从桌面快捷方式启动,则自动保存到桌面。
- 生成格式化的 Excel (
技术栈
本项目采用现代化的 Tauri 2.0 框架构建,结合了 Rust 的高性能和 Web 前端的灵活性。
- 核心框架: Tauri 2.x (构建跨平台桌面应用)
- 后端 (Rust):
calamine: 高效读取 Excel 文件。rust_xlsxwriter: 生成带有复杂样式和公式的 Excel 文件。serde: 数据序列化与反序列化。chrono: 日期和时间处理。dirs: 跨平台路径处理(识别桌面路径)。
- 前端:
- HTML5 / CSS3
- Vanilla JavaScript (原生 JS,无繁重框架依赖)
开发环境准备
在开始之前,请确保您的开发环境已安装以下工具:
- Rust: 安装 Rust
- Node.js: 安装 Node.js (建议 LTS 版本)
- 系统依赖:
- macOS: 需要安装 Xcode Command Line Tools (
xcode-select --install)。 - Windows: 需要安装 Microsoft Visual Studio C++ 生成工具。
- macOS: 需要安装 Xcode Command Line Tools (
跨平台支持
本项目代码完全跨平台,可以在 Windows、macOS 和 Linux 上编译运行。
- Windows 用户注意:
- Tauri 依赖 Webview2(Windows 10/11 通常已内置)。
- 建议直接在 Windows 系统上拉取代码并运行
npm run tauri build进行打包,生成的.exe文件即可直接使用。 - 输出文件逻辑与 macOS 一致:如果
.exe放在桌面上运行,生成的 Excel 也会在桌面;否则在同级目录。
安装与运行
-
克隆项目/进入目录
cd count_attendance -
安装前端依赖
npm install -
启动开发模式 此命令会同时启动前端服务和 Rust 后端,并打开应用窗口。
npm run tauri dev
打包与发布
要生成可分发的应用程序(如 macOS 的 .app 或 .dmg),请运行:
npm run tauri build
打包完成后,安装包通常位于:
src-tauri/target/release/bundle/macos/ (macOS)
项目结构
count_attendance/
├── src/ # 前端源代码 (HTML, CSS, JS)
├── src-tauri/ # Rust 后端源代码
│ ├── src/
│ │ ├── lib.rs # Tauri 命令与模块入口
│ │ ├── excel_reader.rs # Excel 读取逻辑
│ │ ├── data_processor.rs# 数据处理与计算逻辑
│ │ └── excel_writer.rs # Excel 生成与样式逻辑
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 项目配置
├── package.json # 前端依赖配置
└── README.md # 项目说明文档
Description
Languages
Rust
83.3%
JavaScript
7.3%
CSS
6.4%
HTML
3%