使用easyPoi根据提供的Excel模板导出数据

导出Excel文件要求的表头太复杂怎么办?easyPoi提供了一种可以使用模板导出数据的方法。

这里是我自己抽取的一个工具类,用于单条数据导出。使用多条的数据导出详见官方API.

package com.yonyou.aco.cpas.indp.util;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;
import org.apache.poi.ss.usermodel.Workbook;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;

/**
 * TODO: ExportExcelTemplete工具类

 * TODO: 根据读取模板信息导出Excel文件
 * @Date 2019-10-15
 * @author ***
 * @since 1.0.0
 *

描述:添加参数字段一定要注明用途,添加人,以及添加时间
 *
 */
public class ExportExcelTemplate {
    /**
     * 
     * @param templatePath  模板文件路径
     * @param filePath        导出Excel文件路径
     * @param map            传入需要导出的数据
     * @throws Exception
     */
    public static  void templateToExcel( String templatePath,String filePath,Map map) throws Exception {
        try {
            TemplateExportParams params = new TemplateExportParams(templatePath);
        /*    List> listMap = new ArrayList>();//循环写入模板,暂时用不到
            for (int i = 0; i < 4; i++) {
                Map lm = new HashMap();
                lm.put("id", i + 1 + "");
                listMap.add(lm);
            }
            map.put("maplist", listMap);*/

            Workbook workbook = ExcelExportUtil.exportExcel(params, map);
            File savefile = new File("D:/mediaFile/excel/");
            if (!savefile.exists()) {
                savefile.mkdirs();
            }
            FileOutputStream fos = new FileOutputStream(filePath);
            workbook.write(fos);
            fos.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            
        }
    }
}
附上模板Excel文件图片。

使用easyPoi根据提供的Excel模板导出数据_第1张图片

注意:需要导出文件的字段名需与模板中对应

你可能感兴趣的:(java)