Skip to content

7.4 数据导入导出 ​

概述

Excel 能力基于 excelize 封装(utility/excel):ReadSheet 读表(剥表头、跳空行)、WriteSheet 写表落盘返回文件。后端手写导入导出逻辑,前端配套导入组件与下载工具。

后端 API(utility/excel) ​

函数说明
ReadSheet(file)读首个工作表:返回 headers + rows(首行表头剥离、空行跳过)
WriteSheet(dir, baseName, headers, rows)写 xlsx 到指定目录,返回 fileName/filePath

导入范式(以 example 为例) ​

text
dto:ExampleImportReq{ File *multipart.FileHeader } + UnmarshalBody
        ↓
service.Import:
  ReadSheet 拿 rows
  逐行校验(必填、格式)→ 合法行 Create,失败行记录原因(含工作表行号)
  无事务:逐行独立写入,失败行不影响已写入行
        ↓
返回 {Total, Success, Failed, Reasons[]} + ResMsg 提示语

导出范式 ​

text
service.Export:
  复用基座 exampleSpec.applyFilters(与分页同口径的查询条件)
  DictGetText 翻译枚举列(与 SerializeMaps 同字典)
  WriteSheet 落盘 → upload.GetFileUrl 返回访问 URL
        ↓
前端拿到 URL → download 工具落盘

约定 ​

约定说明
查询同口径导出条件与分页请求字段一致(用户所见即所导)
行号折算失败提示行号 = 数据序号 + 2(含表头)
无事务导入大文件不占长事务;结果汇总告知成败
模板同源导入模板经文件模板管理下载(6.21),列头与解析一致

前端配套 ​

  • Excel 组件(components/Excel):导入解析预览、导出生成
  • importFile 组件:导入上传交互
  • downloadFile 工具:URL 文件落盘

见 9.12 Excel 导入导出组件。

相关 ​

小蚂蚁云团队 · 提供技术支持