欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Easypoi模版导出excel

程序员文章站 2022-07-11 08:28:27
...
若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您。
该文章是使用easypoi得模版方式实现excel导出(目前是单sheet的导出),若需要导出多sheet得话,可以参考我的文章EasyPOI->模版形式导出Excel(多Sheet)
直接导出单sheet代码具体参考如下:
首先加入easypoi得依赖:
<!-- easypoi -->
<dependency>
    <groupId>org.jeecg</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>org.jeecg</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>org.jeecg</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>2.4.0</version>
</dependency>
之后就可以书写代码啦,代码如下:
@Controller
@RequestMapping(value = "exportexcel")
public class ExportExcelTest {
    @RequestMapping(value="exportexceltest")
    @ResponseBody
    public String exportExcelTest(HttpServletResponse response){
        // 获取workbook对象
        Workbook workbook = exportSheetByTemplate() ;
        // 判断数据
        if(workbook == null) {
            return "fail";
        }
        // 设置excel的文件名称
        String excelName = "测试excel" ;
        // 重置响应对象
        response.reset();
        // 当前日期,用于导出文件名称
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String dateStr = "["+excelName+"-"+sdf.format(new Date())+"]";
        // 指定下载的文件名--设置响应头
        response.setHeader("Content-Disposition", "attachment;filename=" +dateStr+".xls");
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        // 写出数据输出流到页面
        try {
            OutputStream output = response.getOutputStream();
            BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
            workbook.write(bufferedOutPut);
            bufferedOutPut.flush();
            bufferedOutPut.close();
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }

    /**
     * 模版单sheet导出示例
     * @return
     */
    public Workbook exportSheetByTemplate(){
        // 查询数据,此处省略
        List list = new ArrayList<>();
        int count1 = 0 ;
        EasyPOIModel easyPOIModel11 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("张三","男",20)) ;
        EasyPOIModel easyPOIModel12 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("李四","男",17)) ;
        EasyPOIModel easyPOIModel13 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("淑芬","女",34)) ;
        EasyPOIModel easyPOIModel14 = new EasyPOIModel(String.valueOf(count1++),"信科",new User("仲达","男",55)) ;
        list.add(easyPOIModel11) ;
        easyPOIModel11 = null ;
        list.add(easyPOIModel12) ;
        easyPOIModel12 = null ;
        list.add(easyPOIModel13) ;
        easyPOIModel13 = null ;
        list.add(easyPOIModel14) ;
        easyPOIModel14 = null ;
        // 设置导出配置
        // 获取导出excel指定模版
        TemplateExportParams params = new TemplateExportParams("d:/项目测试文件夹/easypoiExample.xlsx");
        // 标题开始行
        params.setHeadingStartRow(0);
        // 标题行数
        params.setHeadingRows(2);
        // 设置sheetName,若不设置该参数,则使用得原本得sheet名称 
        params.setSheetName("班级信息");
        // 导出excel
        return ExcelExportUtil.exportExcel(params, EasyPOIModel.class,list, new HashMap<>());
    }
}

模版文件格式如下:
Easypoi模版导出excel
使用上述代码导出的文件如下:
Easypoi模版导出excel
上图可以看到数据已经按照模版导出了出来,且sheet得名称由原来得"信息"变更为了"班级信息",这种变更是通过下面这句代码进行设置得
// 设置sheetName,若不设置该参数,则使用得原本得sheet名称 
params.setSheetName("班级信息");
若不想改变sheet得名称,则将上面这句代码注释即可,注释后再次导出excel后可以看到如图:
Easypoi模版导出excel
sheet得名称已经变回原本模版中写好得名称。

其他相关使用请参考原文章:https://gitee.com/jeecg/easypoi







如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。