Skip to content

Excel 导入导出 ​

用户管理使用 Alibaba EasyExcel 提供模板下载、批量导入和导出。

模板下载 ​

模板由后端实时生成并返回,不需要在服务器保存模板文件。模板包含数据填写页和字段说明,状态与性别的可选值会直接写入标题或说明。

导入流程 ​

text
上传 Excel
  → 检查文件大小
  → 读取行数
  → 校验必填和格式
  → 检查用户名重复
  → 生成或编码密码
  → 批量写入
  → 返回导入数量

核心校验:

  • 用户名必填,长度 2~32,全局唯一。
  • 初始密码选填。
  • 昵称最多 32 个字符。
  • 状态只能为 1 或 2。
  • 性别只能为 0、1、2。
  • 手机号和邮箱格式合法。
  • 文件大小、行数和错误展示数量受动态参数限制。

初始密码为空时,PasswordService 使用 SecureRandom 生成默认 16 位随机密码,再通过密码编码器哈希保存。结果只统计自动生成数量,不返回密码明文。

事务 ​

导入应在明确事务中执行。推荐采用“发现任何无效行则整批不落库”的策略,避免用户误以为失败行也已经成功;如果以后需要部分成功,必须返回逐行结果并明确重试方式。

导出 ​

SysUserQueryDto 支持用户 ID 集合:

  • 前端有勾选项:提交 ids,只导出选中用户。
  • 没有勾选项:提交当前查询条件,导出符合条件的用户。

后端始终应用最大导出条数,避免大查询占用过多内存。需要百万级数据导出时应改为异步任务和分片文件,而不是提高当前同步上限。

安全注意 ​

  • 导出不包含密码哈希。
  • 模板示例不填写真实账号和联系方式。
  • 导入错误日志对密码字段脱敏。
  • 公开 Demo 应限制导入、导出权限和文件大小。

YeahBoot 官方技术文档