91名师指路-头部
91名师指路

easyexcel(九):easyexcel导出excel

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

一:控制层。

@GetMapping("/exportAllProvince")
public ReturnMsgUtils exportAllProvince(HttpServletResponse response, SelectAllProvinceKjCompareVO sc) throws ParseException, IOException {
ReturnMsgUtils result=reportKjSalesVolumeService.exportAllProvinceKjCompare(response, sc);
return result;
}


二:service实现层。

@Override
public ReturnMsgUtils exportAllProvince(HttpServletResponse response, SelectAllProvinceKjCompareVO sc) throws ParseException, IOException {
String fileName=System.currentTimeMillis() + ".xlsx";
response.reset();
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
OutputStream os = response.getOutputStream();
List<List<Object>> exportList=new TreeList<>();

// 表头
List<List<String>> headList=new ArrayList<>();
headList.add(Lists.newArrayList(BusinessUtils.R_SPECIFICATION));
headList.add(Lists.newArrayList(BusinessUtils.R_REGION));
headList.add(Lists.newArrayList(BusinessUtils.R_CALCULATION));

// 年月份截取
String dateMonth=sc.getDateMonth();
String yearStr=dateMonth.substring(0, dateMonth.indexOf("-"));
String monthStr=dateMonth.substring(yearStr.length()+1, dateMonth.length());
// 得到上上月和上月
String lastMonth=MonthUtils.lastMonth(dateMonth); // 上月
String lastLastMonth=MonthUtils.lastMonth(lastMonth); // 上上月

// 查询27省报表
Map<String, String> params=new HashMap<String, String>(16);
params.put("dateMonth", sc.getDateMonth()); // 当前月
params.put("regionName", BusinessUtils.REGION_NAME);
Map<String, String> searchParams=selectUserOrg(params); // 调用查询当前登录用户所属组织的方法
List<ReportDataKjMonthly> monthList=reportDataKjMonthlyMapper.selectAllProvinceKjCompareByMonth(searchParams);
if(null!=monthList && monthList.size()>0){
// 2 组装区域数据
List<Object> contentList=null;
for(int i=0; i<monthList.size(); i++){
contentList=new ArrayList<>();
String metricName=monthList.get(i).getMetricName(); // 规格
String metricVendor=monthList.get(i).getMetricVendor(); // 区域
String metricDesc=monthList.get(i).getMetricDesc(); // 计算逻辑
contentList.add(metricName);
contentList.add(metricVendor);
contentList.add(metricDesc);

String jsonData=monthList.get(i).getInfo(); // json内容
JSONArray jsonArray=JSONArray.parseArray(jsonData);
if(null!=jsonArray && jsonArray.size()>0){
for(int h=0; h<jsonArray.size(); h++){
double salesVolume2=Double.parseDouble((String) jsonArray.getJSONObject(h).get("salesVolume_2")); // 上上月销量
double salesVolume1=Double.parseDouble((String) jsonArray.getJSONObject(h).get("salesVolume_1")); // 上月销量
double salesVolume=Double.parseDouble((String) jsonArray.getJSONObject(h).get("salesVolume")); // 当前月销量
double compare=Double.parseDouble((String) jsonArray.getJSONObject(h).get("compare")); // 同比
contentList.add(salesVolume2);
contentList.add(salesVolume1);
contentList.add(salesVolume);
contentList.add(compare);
}
exportList.add(contentList);
}
}
}

EasyExcel.write(os).head(headList).sheet(BusinessUtils.R_SHEET_NAME).doWrite(exportList);
ReturnMsgUtils result=new ReturnMsgUtils(BusinessUtils.CODE_200, BusinessUtils.MSG_EXPORT_200);
return result;
}


三:导出excel的时候,可能会出现单元格中左上角有绿色三角符号,如下图所示。

去掉的方法也很简单,将对应的值转为double类型即可,如下代码所示。

double salesVolume2=Double.parseDouble((String) jsonArray.getJSONObject(h).get("salesVolume_2"));



2020-09-24 14:30:26     阅读(1123)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部