Skip to content

Latest commit

 

History

History
243 lines (198 loc) · 6.94 KB

File metadata and controls

243 lines (198 loc) · 6.94 KB

需求文档

1. 项目概述

1.1 项目背景

Excel筛选器是一个桌面应用程序,旨在解决用户在处理多个Excel文件时,需要根据复杂条件筛选数据并填充到指定模板的问题。

1.2 项目目标

  • 提高Excel数据处理效率
  • 简化复杂筛选条件的设置
  • 支持筛选方案的保存和重用
  • 提供直观易用的桌面界面

1.3 目标用户

  • 数据分析师
  • 财务人员
  • 人事管理人员
  • 需要处理大量Excel数据的办公人员

2. 功能需求

2.1 数据输入功能 (F001)

2.1.1 数据源上传 (F001-01)

  • 功能描述:用户可以上传多个Excel文件作为数据源
  • 输入:Excel文件(.xlsx, .xls格式)
  • 输出:成功上传的文件列表
  • 约束条件
    • 支持同时上传最多20个文件
    • 单个文件大小不超过50MB
    • 文件必须包含有效的Excel数据

2.1.2 输出模板上传 (F001-02)

  • 功能描述:用户可以上传一个Excel文件作为输出模板
  • 输入:Excel模板文件
  • 输出:模板结构预览
  • 约束条件
    • 仅支持上传一个模板文件
    • 模板必须包含明确的列标题

2.2 数据解析功能 (F002)

2.2.1 表头识别 (F002-01)

  • 功能描述:自动识别所有上传Excel文件的第一行作为字段变量
  • 输入:已上传的Excel文件
  • 输出:所有可用的字段变量列表
  • 处理逻辑
    • 读取每个Excel文件的第一行
    • 去重合并所有字段名
    • 验证字段名的有效性

2.2.2 数据类型推断 (F002-02)

  • 功能描述:自动推断每个字段的数据类型
  • 支持类型:文本、数字、日期、布尔值
  • 输出:字段名和对应数据类型的映射表

2.3 筛选条件设置功能 (F003)

2.3.1 条件构建器 (F003-01)

  • 功能描述:提供可视化界面设置筛选条件
  • 支持的操作符
    • 等于 (=)
    • 不等于 (!=)
    • 大于 (>)
    • 小于 (<)
    • 大于等于 (>=)
    • 小于等于 (<=)
    • 包含 (contains)
    • 不包含 (not contains)
    • 在范围内 (in range)
    • 为空 (is null)
    • 不为空 (is not null)

2.3.2 逻辑组合 (F003-02)

  • 功能描述:支持多个条件的逻辑组合
  • 支持的逻辑操作
    • AND(与)
    • OR(或)
  • 支持嵌套:允许使用括号进行条件分组

2.3.3 多规则管理 (F003-03)

  • 功能描述:用户可以创建多个独立的筛选规则
  • 规则包含
    • 规则名称
    • 筛选条件
    • 目标输出列
    • 规则描述(可选)

2.4 配置管理功能 (F004)

2.4.1 方案保存 (F004-01)

  • 功能描述:将多个筛选规则组合保存为筛选方案
  • 保存内容
    • 方案名称和描述
    • 所有筛选规则
    • 列映射关系
    • 创建和修改时间

2.4.2 方案加载 (F004-02)

  • 功能描述:快速加载已保存的筛选方案
  • 功能特性
    • 方案列表查看
    • 方案预览
    • 方案导入/导出
    • 方案复制

2.4.3 方案管理 (F004-03)

  • 功能描述:对已保存的方案进行管理
  • 管理操作
    • 重命名方案
    • 删除方案
    • 修改方案
    • 查看使用历史

2.5 数据处理功能 (F005)

2.5.1 数据筛选 (F005-01)

  • 功能描述:根据设置的条件筛选数据
  • 处理流程
    1. 解析筛选条件
    2. 在所有数据源中查找匹配记录
    3. 应用逻辑组合条件
    4. 返回筛选结果

2.5.2 结果填充 (F005-02)

  • 功能描述:将筛选结果填充到输出模板的指定列
  • 填充规则
    • 每个筛选规则对应一个输出列
    • 保持原有模板格式
    • 支持数据类型转换

2.6 输出功能 (F006)

2.6.1 结果预览 (F006-01)

  • 功能描述:在导出前预览筛选和填充结果
  • 预览内容
    • 筛选数据统计
    • 填充结果表格
    • 异常数据提示

2.6.2 文件导出 (F006-02)

  • 功能描述:将处理结果导出为Excel文件
  • 导出选项
    • 文件名自定义
    • 保存路径选择
    • 格式选择(.xlsx, .xls)

3. 非功能需求

3.1 性能需求

  • 响应时间:单次筛选操作响应时间不超过5秒
  • 并发处理:支持同时处理10万行数据
  • 内存使用:运行时内存占用不超过500MB

3.2 可用性需求

  • 易用性:新用户5分钟内能完成基本操作
  • 界面响应:界面操作响应时间不超过200ms
  • 错误处理:提供清晰的错误提示和恢复建议

3.3 兼容性需求

  • 操作系统:支持Windows 10+, macOS 10.14+, Ubuntu 18.04+
  • Excel格式:支持.xlsx, .xls格式
  • 文件编码:支持UTF-8, GBK编码

3.4 安全性需求

  • 数据安全:所有数据本地处理,不上传到服务器
  • 文件完整性:处理过程中确保原始文件不被修改
  • 权限控制:仅访问用户明确授权的文件

4. 用例描述

4.1 主要用例

用例1:创建筛选方案

  • 参与者:最终用户
  • 前置条件:用户已上传数据源和模板文件
  • 主要流程
    1. 用户选择筛选字段
    2. 设置筛选条件和逻辑关系
    3. 指定输出列
    4. 保存筛选方案
  • 后置条件:筛选方案保存成功

用例2:执行数据筛选

  • 参与者:最终用户
  • 前置条件:已创建筛选方案或加载已有方案
  • 主要流程
    1. 用户点击执行筛选
    2. 系统处理筛选条件
    3. 显示筛选结果预览
    4. 用户确认并导出结果
  • 后置条件:生成包含筛选结果的Excel文件

5. 数据字典

5.1 核心实体

筛选方案 (FilterPlan)

字段名 类型 长度 必填 描述
id Integer - 方案ID
name String 100 方案名称
description String 500 方案描述
created_time DateTime - 创建时间
updated_time DateTime - 更新时间

筛选规则 (FilterRule)

字段名 类型 长度 必填 描述
id Integer - 规则ID
plan_id Integer - 所属方案ID
name String 100 规则名称
conditions JSON - 筛选条件
target_column String 50 目标输出列

6. 约束条件

6.1 技术约束

  • 必须使用Python 3.8+开发
  • GUI框架必须使用PySide6
  • 数据处理必须使用pandas

6.2 业务约束

  • 单次处理的数据总量不超过100万行
  • 筛选方案数量不超过1000个
  • 单个方案包含的规则数量不超过50个

7. 验收标准

7.1 功能验收

  • 所有功能需求正常工作
  • 界面操作流畅直观
  • 数据处理结果准确

7.2 性能验收

  • 10万行数据筛选时间 < 5秒
  • 应用启动时间 < 3秒
  • 内存占用 < 500MB

7.3 质量验收

  • 代码测试覆盖率 > 80%
  • 无严重Bug
  • 用户体验良好