java用poi导出excel

本文详细介绍如何使用Java POI库导出Excel文件,包括在service层创建Excel文档,填充数据,以及在controller层设置响应头,实现Excel文件的下载。同时提供了前端页面的导出按钮实现。

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

项目需要用poi导出excel,比较详细。

1.service层

public HSSFWorkbook languageExport()

导包要导正确

2.serviceImpl层

public HSSFWorkbook languageExport() {
        //创建HSSFWorkbook对象(excel的文档对象)
        HSSFWorkbook wb = new HSSFWorkbook();
        //建立新的sheet对象(excel的表单)
        HSSFSheet sheet = wb.createSheet("语言信息");
        //在sheet里创建第一行
        HSSFRow row1 = sheet.createRow(0);
        row1.createCell(0).setCellValue("ID");
        row1.createCell(1).setCellValue("语言");
        // 在sheet里创建第二行
        List<Language> list = this.getAllList(Language.class);
        HSSFRow row;
        for (int i = 0; i < list.size(); i++) {
            row = sheet.createRow(i + 1);
            row.createCell(0).setCellValue(list.get(i).getId());
            row.createCell(1).setCellValue(list.get(i).getLanguageName());
        }
        return wb;
    }

3.controller层

@RequestMapping("/exportLanguage")
    public void exportLanguage(HttpServletRequest request, HttpServletResponse response) throws IOException{
        // 创建HSSFWorkbook对象(excel的文档对象)
        HSSFWorkbook wb = service.languageExport();
        // 输出Excel文件
        OutputStream output = response.getOutputStream();
        //response.reset();
        String fileName = "语言信息"+ ".xls";
        this.setResponseHeader(response, fileName);
        wb.write(output);
        output.write(wb.getBytes());
        output.close();
    }

4.页面

<form class="layui-form" id="webform">
    <div id="stationSelect" class="layui-form-item">
       <div class="layui-input-inline">
             <a class="layui-btn layui-btn-normal layui-btn-sm" id="export"><i class="layui-icon">&#xe654;</i>导出</a>
        </div>                                                    
    </div>
</form>
    <table class="layui-hide" lay-filter="resume" id="resume"></table>

因为项目用的是layui,所以需要layui的一些渲染方法,

<script>
    layui.use(['table','form'], function(){
        var table = layui.table;
        var form=layui.form;
        
      //渲染数据
        table.render({
            elem: '#resume'
            ,url:'${base}/infoExport/list.htm'
            ,page : true
            ,cellMinWidth: 80
            ,height: 'full-10'
            ,cols:[[
                {field: 'name',title: '基本信息名称',align:'center'},
                {fixed: 'right',title: '操作', align:'center',fixed:'right', toolbar: '#barDemo'}
              ]]
            ,id:'tab'
            ,limit : 50
            ,request : {
                pageName : 'pageNumber',
                limitName : 'pageSize'
            } 
        });
      
        //导出
        $('#export').click(function () {
            var url = '${base}/infoExport/exportEqu.htm?'+ $("#webform").serialize();
            window.location.href=url;
        });
    });
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值