java实现excel导出

本文介绍如何利用Java POI库实现从数据库查询数据并导出为Excel文件的过程。具体包括配置POI依赖、定义导出字段、获取数据、组装数据到Excel表格以及设置输出类型等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将poi jar包引入项目


2.后台代码

在导出的action中定义好导出标题

/** 导出标题 */
    private static final String[] EXPORT_SEVEN_QUESTION = {"姓名", "手机号", "意见"};


@RequestMapping("/training/exportSevenQuestion")
    public void exportSevenQuestion(final QuestionNaireQueryBean queryBean, final HttpServletRequest request,
            final HttpServletResponse response) {
        try {
            queryBean.setPageSize(-1);
            List<QuestionNaire> list = questionNaireDao.questionNaireDataAnalysisTablePage(queryBean);//根据前台传的参数查询出符合的结果集
            List<List<String>> exportList = new ArrayList<>();
            for (QuestionNaire questionNaire : list) {
                List<String> strList = new ArrayList<>();
                strList.add(questionNaire.getUname());
                strList.add(questionNaire.getUphone());
                strList.add(questionNaire.getQuestion_7());
                exportList.add(strList);
            }
            ExcelFileGenerator excelFile = new ExcelFileGenerator(Arrays.asList(EXPORT_SEVEN_QUESTION), exportList);
            setExcelContentType(response);
            excelFile.exportExcel(response.getOutputStream());
            logger.info("导出问卷调查第七题.导出记录数:" + exportList.size(), JSON.toJSONString(queryBean));
        } catch (Exception e) {
            logger.error("导出日志excel错误", e);
        }
    }

//设置文件格式

protected void setExcelContentType(HttpServletResponse response) {
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment;filename=\"data.xls\"");
    }

// 将信息写入输出流的方法。
    public void exportExcel(OutputStream os) throws Exception {
        workBook = createWorkbook();
        try {
            workBook.write(os);
        } finally {
            if (os != null) {
                os.close();
            }
        }

    }


导出效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值