实例:
Controller层
/**
* 导出提现Excexl
*/
@PostMapping("/financeExport")
@ApiOperation("导出提现")
public String financeExport(@RequestBody RequestModel requestModel, HttpServletResponse response) {
return aliSettlementService.financeExport(requestModel, response);
}
Service层
String financeExport(RequestModel requestModel, HttpServletResponse response);
@Override
public String financeExport(RequestModel requestModel, HttpServletResponse response) {
log.info("导出报表信息入参:{}", requestModel);
Integer pageSize = 10;
if (requestModel.getLimit() != null) {
pageSize = requestModel.getLimit();
}
if (requestModel.getPage() == null) {
PageHelper.startPage(1, pageSize);
} else {
PageHelper.startPage(requestModel.getPage(), pageSize);
}
String name = DateUtil.now() + "提现明细";
//分页查询报表记录
List<AliMuLiSettlementExcelVo> aliMuLiSettlementExcelVos = new ArrayList<>();
//商家
List<ShopMoneyReportPo> shopMoneyReportPos = computeReportDao.selectShopMoneyInfoByTime(requestModel);
PageInfo<ShopMoneyReportPo> shopMoneyReportPoPageInfo = new PageInfo(shopMoneyReportPos);
for (ShopMoneyReportPo shopMoneyReportPo : shopMoneyReportPoPageInfo.getList()) {
AliMuLiSettlementExcelVo aliMuLiSettlementExcelVo = new AliMuLiSettlementExcelVo();
aliMuLiSettlementExcelVo.setAccount(shopMoneyReportPo.getZhiFuBao());
aliMuLiSettlementExcelVo.setMoney(shopMoneyReportPo.getShopsMoney());
aliMuLiSettlementExcelVo.setName(shopMoneyReportPo.getZhiFuBaoName());
aliMuLiSettlementExcelVo.setRemark("商家");
aliMuLiSettlementExcelVos.add(aliMuLiSettlementExcelVo);
}
//骑手
List<RiderMoneyReportPo> riderMoneyReportPos = computeReportDao.selectRiderMoneyInfoByTime(requestModel);
PageInfo<RiderMoneyReportPo> riderMoneyReportPoPageInfo = new PageInfo(riderMoneyReportPos);
for (RiderMoneyReportPo riderMoneyReportPo : riderMoneyReportPoPageInfo.getList()) {
AliMuLiSettlementExcelVo aliMuLiSettlementExcelVo = new AliMuLiSettlementExcelVo();
aliMuLiSettlementExcelVo.setAccount(riderMoneyReportPo.getZhiFuBao());
aliMuLiSettlementExcelVo.setMoney(riderMoneyReportPo.getRiderMoney());
aliMuLiSettlementExcelVo.setName(riderMoneyReportPo.getZhiFuBaoName());
aliMuLiSettlementExcelVo.setRemark("骑手");
aliMuLiSettlementExcelVos.add(aliMuLiSettlementExcelVo);
}
for (int i = 0; i < aliMuLiSettlementExcelVos.size(); i++) {
AliMuLiSettlementExcelVo aliMuLiSettlementExcelVo = aliMuLiSettlementExcelVos.get(i);
aliMuLiSettlementExcelVo.setIndex(i+1);
}
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + "提现明细" + "." + "xlsx");
ExcelUtil.exportExcel( URLEncoder.encode(name, "utf-8"),aliMuLiSettlementExcelVos, AliMuLiSettlementExcelVo.class,"提现明细",response);
return "导出任务已创建,请稍后至个人下载中心(页面右上角)进行下载!";
} catch (UnsupportedEncodingException e) {
log.error("encode失败"+e);
}
return "导出失败";
}
实体类:
package com.sqx.modules.pay.entity;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ExcelIgnoreUnannotated
public class AliMuLiSettlementExcelVo {
@ExcelProperty(value = {"提现明细","序号"}, index = 0)
private Integer index;
@ExcelProperty(value = {"提现明细","收款方支付宝账号"}, index = 1)
private String account;
@ExcelProperty(value = {"提现明细","收款方姓名"}, index = 2)
private String name;
@ExcelProperty(value = {"提现明细","金额"}, index = 3)
private BigDecimal money;
@ExcelProperty(value = {"提现明细","备注"}, index = 4)
private String remark;
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}