导入与导出的实现方案?

有这种方案做导入和导出的吗?请帮我分析下利与弊。

以订单为例:

导入,利用exceljs或sheetjs转换成json再分批提交,解析格式:

[{"name":"","mobile","items":[{productId:"",price:"",quantity}]},{...}]

  • 可以分批提交,实现进度: 已提交X条,共成功X条,共失败X条等
  • 每批返回处理对应行的的结果:成功或失败(原因)
  • 也可以做一些基本的验证:长度、数字等验证

导出,带条件查询,然后轮循做分页查询,直接到返回为空,则导出。查询带上last id做查询优化

  • 实进导出进度:预计导出X条,已读X条等

主要是想实现导入导出的数据至少在万条以上,避免在页面长时间等待且没有进度提示的现象,给用户制造一个心理预期。同时避免导入与导出占用的内存太多。

阅读 2k
2 个回答

导入导出的数据至少在万条以上,讲道理应该做在服务端。轮训这种操作看上去有点无脑,平白提高了qps

可以分批提交,实现进度: 已提交X条,共成功X条,共失败X条等。

上传只是提交任务。然后可以通过其他接口来查看任务执行进度。

每批返回处理对应行的的结果:成功或失败(原因)

任务可以分批做。也可以分批创建任务。

导入导出这么做是OK的,数据量大也可以用worker,实测100w数据带样式带合并单元格2分钟,但是如果遇到复杂结构的比如合并单元格,那么这种是没有后端做来的快的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题