--------------------------------------------方式一(新)-----------------------------------------------------------------

这个导出excel是需要excel模板文件,这个方式的好处是可以自定义excel的表头,方式如下:

1.复制该工具类

import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

public class ExcelTemplateUtils {
    /** 
     *  
     * @param filename  导出的文件名 
     * @param dataMap   List的集合 
     * @param model  
     * @param response 
     * @throws IOException 
     */  
    @SuppressWarnings("rawtypes")
    public void export(String filename, Map<String,List>dataMap, String model, HttpServletResponse response){
        XLSTransformer transformer = new XLSTransformer();
        HSSFWorkbook workbook;
        InputStream in;  
        try {
            //此方法需要类与模板放在同一目录下   
            in = Thread.currentThread().getContextClassLoader().getResourceAsStream(model);
//            in = getClass().getResourceAsStream(model);
            workbook = transformer.transformXLS(in, dataMap);
            outExcel(workbook, response, filename);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
      
    protected void outExcel(HSSFWorkbook workbook, HttpServletResponse response,
                            String filename) throws UnsupportedEncodingException {
           response.setContentType("application ns.ms-excel");  
           response.setHeader("Expires", "0");  
           response.setHeader("Cache-Control",  
             "must-revalidate, post-check=0, pre-check=0");  
           response.setHeader("Pragma", "public");  
           response.setHeader("Content-disposition", "attachment;filename="+new String(filename.getBytes("utf-8"),"iso-8859-1")+".xls");
  
           try {  
                workbook.write(response.getOutputStream());  
           } catch (ParsePropertyException e) {
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
}

2.自定义excel模板文件:(不能插入excel文件,所以截图了,如图所示)

JAVA Excel导入导出

3.导出请求代码:

@GetMapping("/export")
    public void excelTemplate(String startDate, String endDate, String email, HttpServletResponse response) {
        FinancialReq req = new FinancialReq();
        req.setEmail(email);
        req.setStartDate(startDate);
        req.setEndDate(endDate);
        List list  = adminFinancialService.findExcelList(req);
        Map<String, List> beanParams = new HashMap<String, List>();
        beanParams.put("financialSummary", list);
        ExcelTemplateUtils excel = new ExcelTemplateUtils();

        StringBuilder title = new StringBuilder();
        title.append("财务统计报表");
        title.append(DateUtils.formatDate(new Date(),"yyyyMMddhhmmss"));
        excel.export(title.toString(), beanParams, "template_financialSummary.xls", response);
    }
View Code

相关文章:

  • 2021-12-09
  • 2021-08-26
  • 2021-12-22
  • 2021-11-08
  • 2021-12-22
  • 2021-11-08
  • 2021-11-08
  • 2021-11-08
猜你喜欢
  • 2021-11-08
  • 2021-08-01
  • 2021-11-08
  • 2021-11-08
  • 2021-12-22
  • 2021-11-18
  • 2021-11-08
  • 2021-09-10
相关资源
相似解决方案