版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_zhulinghai/article/details/88800598
这里用的apache的HSSFWorkbook 实现的报表导出
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jiuhongpay.base.util.DateUtil;
import com.jiuhongpay.base.util.StringUtil;
import com.jiuhongpay.common.base.entity.Maker;
import com.jiuhongpay.common.base.entity.ResultData;
import com.jiuhongpay.common.base.entity.WalletLog;
import com.jiuhongpay.common.base.exception.BasicException;
import com.jiuhongpay.common.base.util.SecurityUtil;
import com.jiuhongpay.makerhomeadmin.dao.MakerMapper;
import com.jiuhongpay.makerhomeadmin.dao.WalletLogMapper;
import com.jiuhongpay.makerhomeadmin.entity.SysUser;
import com.jiuhongpay.makerhomeadmin.service.MakerService;
import com.jiuhongpay.makerhomeadmin.service.SysUserService;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.*;
public ResultData downExcel(Map<String, Object> paramMap, HttpServletResponse response) {
SysUser currentSysUser = sysUserService.getCurrentBaseUser();
if (sysUserService.isBlur()){
paramMap.put("isBlur",1);//需要脱敏
}
List<Maker> makers = makerMapper.getList(paramMap);
ServletOutputStream outputStream = null;
try {
response.reset();//清空输出流
String filename = "服务商列表" + new Date().getTime() + ".xls";
filename = new String(filename.getBytes("gb2312"),"ISO8859-1");
response.setHeader("Content-disposition","attachment; filename=" + filename);//设置输出文件头
response.setContentType("application/msexcel");//定义输出类型
outputStream = response.getOutputStream();
}catch (IOException e){
logger.error("异常信息:{}",e);
}
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfWorkbook.createSheet();
sheet.setDefaultColumnWidth(12);
HSSFRow sheetRow = sheet.createRow(0);
sheetRow.createCell(0).setCellValue("创建/实名时间");
sheetRow.createCell(1).setCellValue("用户名");
sheetRow.createCell(2).setCellValue("真实姓名");
sheetRow.createCell(3).setCellValue("身份证号");
sheetRow.createCell(4).setCellValue("等级");
if (makers != null || makers.size() > 0){
for (int i = 0; i < makers.size(); i++) {
HSSFRow row = sheet.createRow(i+1);
Maker maker = makers.get(i);
row.createCell(0).setCellValue(DateUtil.formatDate(maker.getCreateTime()));
row.createCell(1).setCellValue(StringUtil.isNotBlank(maker.getMobile()) ? maker.getMobile() : "");
row.createCell(2).setCellValue(StringUtil.isNotBlank(maker.getRealname()) ? maker.getRealname() : "");
row.createCell(3).setCellValue(StringUtil.isNotBlank(maker.getIdCard()) ? maker.getIdCard() : "");
row.createCell(4).setCellValue(maker.getGrade());
}
}
try {
hssfWorkbook.write(outputStream);
hssfWorkbook.close();
outputStream.close();
}catch (IOException e){
logger.error("错误信息:{}",e);
}
return ResultData.ok();
}