Springboot+Layui实现数据Excel表格导出

Springboot+Layui实现数据Excel表格导出

image-20220716171249511

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXK7GJjn-1657963058205)(../img/image-20220716171257895.png)]

前端代码:

<button type="button" lay-event="add" class="layui-btn layui-btn-sm layui-btn-radius" lay-submit="" lay-filter="doOutPortExcel">
    <i class="layui-icon layui-icon-normal">&#xe654;</i>导出Excel疫情数据
</button>
// 导出Excel数据
form.on("submit(doOutPortExcel)", function () {
    window.location.href = "/excelOutPortChina";
})

后端代码:

   /*
        导出Excel数据到文件中,中国疫情数据
        1.查询数据库,获取所有疫情数据
        2.建立Excel数据对象,封装数据,输出文件
        3.建立输出,将封装好的Excel表格导出
     */
    @RequestMapping("/excelOutPortChina")
    public void excelOutPortChina(HttpServletResponse response) throws Exception {
        // 1.查询数据库【查询所有,复核人条件的数据给你查询来】
        List<NocvData> list = indexService.list();

        // 2.建立Excel对象,封装数据
        response.setCharacterEncoding("UTF-8");
        // 2.1 创建Excel对象
        HSSFWorkbook wb = new HSSFWorkbook();
        // 2.2 创建sheet对象
        HSSFSheet sheet = wb.createSheet("数据sheet1");
        // 2.3 创建表头
        HSSFRow hssfRow = sheet.createRow(0);
        hssfRow.createCell(0).setCellValue("城市名称");
        hssfRow.createCell(1).setCellValue("确诊数量");
        // 3.遍历数据,封装Excel公作对象
        for (NocvData data : list){
            HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
            dataRow.createCell(0).setCellValue(data.getName());
            dataRow.createCell(1).setCellValue(data.getValue());
        }
        // 4.建立输出流,输出浏览器文件
        OutputStream os = null;
        // 4.1 设置一下excel名字,输出类型编码
        response.setContentType("application/octet-stream;chartset=utf8");
        response.setHeader("Content-Disposition","attachment;filename="+ new String("疫情数据表".getBytes(),"iso-8859-1")+".xls");
        // 4.2 输出文件
        os = response.getOutputStream();
        wb.write(os);
        os.flush();
        os.close();
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uen4qI7L-1657963058205)(../img/image-20220716171626439.png)]

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小唐僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值