导出Execl表功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
    }

猜你喜欢

转载自blog.csdn.net/java_zhulinghai/article/details/88800598