关于java导出的详细代码

本文介绍了如何在SpringMVC架构中,Controller层处理导出提现Excel的功能,通过Service层调用数据查询方法,结合实体类AliMuLiSettlementExcelVo,实现了按需分页并生成Excel报表的功能。
摘要由CSDN通过智能技术生成

实例:

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;
}
}

  • 46
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,我们可以使用Apache POI库来方便地创建和导出Excel文件。以下是一个简单的示例,展示如何使用`HSSFWorkbook`(HSSF)或`XSSFWorkbook`(XSSF,用于处理.xlsx文件)来创建一个新的Excel工作簿,并写入一些数据: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public void exportToExcel(String filename, String[][] data) { try { // 创建一个新的Excel工作簿 Workbook workbook; if (filename.endsWith(".xlsx")) { // 判断是否为.xlsx文件 workbook = new XSSFWorkbook(); } else { // 默认为.xls文件 workbook = new HSSFWorkbook(); } // 创建一个工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 获取行数 int rowNum = data.length; // 获取列数 int colNum = data.length; // 写入数据 for (int i = 0; i < rowNum; i++) { Row row = sheet.createRow(i); for (int j = 0; j < colNum; j++) { Cell cell = row.createCell(j); cell.setCellValue(data[i][j]); } } // 保存并关闭文件 FileOutputStream outputStream = new FileOutputStream(filename); workbook.write(outputStream); workbook.close(); outputStream.close(); System.out.println("Excel file exported successfully."); } catch (Exception e) { e.printStackTrace(); System.out.println("Error exporting to Excel: " + e.getMessage()); } } // 调用示例: String[][] data = { {"Name", "Age", "Email"}, {"John Doe", 30, "john@example.com"}, {"Jane Smith", 25, "jane@example.com"} }; exportToExcel("output.xlsx", data); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值