导出记录xls_or_csv文件

前言

这是一个提供后台数据导出的方案。

在我们业务场景的时候,需要对于一些订单数据或者操作记录等中台展示的数据导出给到业务。

主要的话可以有这么几种方法:

  1. 通过GET方法使用流的方式导出到前端
  2. 通过OSS存储文件,给出文件路径提供下载。OSS也可以换成腾讯的COS,同理。

主要的流程就是,

  1. 组装数据
  2. 创建文件(excel表格数据(xls) or 纯文本形式存储表格数据(csv))。
  3. 导出数据。

操作

文件流式

​ TIPS: 通过设定get请求,在入参设定给定HttpServletResponse

1. 设定请求

​ 文件流式的导出需要将流添加到响应体中,POST请求笔者目前无法拿出响应体,所以需要的是设定GET请求。

image-20240123103108549

2. 组装数据

​ 通过请求携带的参数通过查询接口获取到集合数据。通常的场景都是分页查询的中台接口,所以在获取数据的时候记得分页参数的设定,

3. 创建文件导出数据
Excel文件
POI

​ poi是直接设定工作簿,sheet页,然后添加边框和数据等方式去添加成xls文件。然后加到响应里面。

image-20240123104242856

Easy Excel

​ Easy Excel 的所用代码量会更少,主要是通过对于数据定义成类,通过注解去定义行字段定义。然后写进响应里面。

image-20240123104748788

​ 导出方法:

image-20240123104439245

​ 如果想要导出到本地目录的话可以指定文件流地址。

image-20240123111421321

​ 效果:

image-20240123111904599

纯文本格式数据

​ csv:格式的表格主要是需要通过设定每行一个特定名,与数据类一一对应上,然后去生成文件。如果给定的行名在数据类里面找不到,那么这一行会为空。

这个方法会没有表头,如果想要设定表头,可以使数据类全部属性都为String,然后再数据集合最前面手动添加一行表头数据。

csv

image-20240123160823715

​ 效果:

image-20240123160908847

B列式因为aaa 在数据类里面找不到,数据类是userPhone,所以没有。相同才会导出。

image-20240123161134289

导出方法:

image-20240123161202386

Tips:

​ 同理,如果想要把csv文件以流的方式给出去,可以把csvMapper.writeValuesfile 替换成ServletOutputStream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值