jeecg excel文件导出

本文介绍如何在Jeecg框架中利用easypoi实现Excel文件的导出功能。通过创建实体类TestExcelVo并调用导出方法,能够在页面上成功导出文件,并在服务器本地生成相应的文件记录。

jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi。

一般我们会创建一个实体类TestExcelVo.java

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;

@Data
public class TestExcelVo {
    //实体属性,一定要用驼峰命名,不然后台会自动转成驼峰
    @Excel(name = "字段1", width = 15)
    @JSONField(name = "field1")
    private String field1;
    @Excel(name = "字段2", width = 15)
    @JSONField(name = "field2")
    private String field2;
    @Excel(name = "字段3", width = 15)
    @JSONField(name = "field3")
    private String field3;
}

 然后使用导出方法导出

    /**
     * 导出行明细excel
     */
    @RequestMapping(value = "/exportItemsXlsUrl")
    public ModelAndView exportItemsXlsUrl(@RequestParam(name = "paramStr") String paramStr, HttpServletRequest req) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();

        String basePath = System.getProperty("user.dir");
        String fileDir = basePath + File.separator + "excel导出记录" + File.separator;
        log.info("fileDir:" + fileDir);

        String attributeValue = "导出文件";
        String title = "导出文件";
        String secondTitle = "导出人:";
        String sheetName = "导出文件";

        // 获取接口请求参数
        FsmSystemParamVo fsmParamVo = fsmTokenService.getFsmSystemParamVo("");
        JSONObject params = JSONObject.parseObject(paramStr);

        List<TestExcelVo> list = projectStageStatistics.getPageList(fsmParamVo, params);

        String curDateTime = LocalDateTime.now().toString().replace("T", "_").substring(0, 19).replace(":", "_");//文件名称不能带:
        String fileName = attributeValue + "_" + curDateTime;

        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        mv.addObject(NormalExcelConstants.FILE_NAME, attributeValue);
        //mv.addObject(NormalExcelConstants.FILE_NAME, fileName);//无效
        mv.addObject(NormalExcelConstants.CLASS, TestExcelVo.class);
        //mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title, secondTitle + sysUser.getRealname(), sheetName));
        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title, secondTitle, sheetName));
        mv.addObject(NormalExcelConstants.DATA_LIST, list);

        //生成本地文件 使用本地的模板
        TemplateExportParams params2 = new TemplateExportParams("templates/excel/数据导出-模板.xls");
        params2.setHeadingStartRow(2);
        params2.setHeadingRows(1);

        Map<String, Object> map = new HashMap<String, Object>();
        Workbook workbook = ExcelExportUtil.exportExcel(params2, TestExcelVo.class, list, map);
        File savefile = new File(fileDir);
        if (!savefile.exists()) {
            savefile.mkdirs();
        }
        FileOutputStream fos = null;
        try {
            log.info("excel导出文件名称:" + fileDir + fileName + ".xls");
            fos = new FileOutputStream(fileDir + fileName + ".xls");
            workbook.write(fos);
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return mv;
    }

以上方法页面可以正常导出文件,服务器本地可以生成对应的文件记录

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值