原 easyexcel(九):easyexcel导出excel
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1276
一:控制层。
@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
博主信息