最近,使用layui做一个导出功能,尽管有插件提供导出,但是呢,由于数据中有状态是数字,例如1显示是已支付,但是导出时也希望这样显示,但是导出的还是1;
lz没有找到改下这个插件的办法,只能利用服务端生成,再响应客户端,进行下载Excel文件。
由于系统采用的是ajax方法传输参数,无法以以往方法通过流响应即可。
一般常用的文件下载方式:
1 post请求,使用form标签进行提交,服务端已流输出,即可下载文件;适用于数据量不大场景;
2 ajax post请求,采用缓存,将生成的文件存放,成功后采用location.href;此方法后处,遇到大文件,图片场景,可以使服务端性能提高;
3 ajax post请求,将生成的文件存放服务端路径,成功后采用location.href;跟第二种大同小异。。
似乎跑题了,前台js封装json数据,
var res={"merchantNo": merchantNo,"startTime":startTime,"endTime":endTime,"bills":bills};
bills是一个数组;
后台controller接收;
还有另外一种方式接收。。
将其写成一个 类,然后就可以更快的进行处理。
获取json集合
JSONObject jsonObject = JSONObject.parseObject(res);
JSONArray jsonArray = (JSONArray)jsonObject.get("bills");
List bills = (List)JSONArray.parseArray(jsonArray.toString(), BillVo.class);