美文网首页
hutool+poi库+excel导出功能

hutool+poi库+excel导出功能

作者: 咿呀一样 | 来源:发表于2020-07-15 14:29 被阅读0次

hutool+poi库+excel导出

网上博客一大推,却没有几个能用的,结合自己实际开发中遇到所写笔记。有不明白的可以直接留言。

  1. 直接开始引入依赖
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.8</version>
        </dependency>

引入poi库

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>

mapper层
service层忽略,自己实际开发中写
就是一个查询
所写导出功能在controller层
2.我是下载了hutool的工具类


image
//获取到的数据
List<Map<String, Object>> hourEx = alarmCellDetailHourService.getAlarmCellDetailHourEx();
 ExcelWriter writer = ExcelUtil.getWriter();
        writer.addHeaderAlias("dt", "时间");
        writer.addHeaderAlias("province", "省份");
        writer.addHeaderAlias("city", "城市");
        writer.addHeaderAlias("user_label", "小区名称");
        writer.addHeaderAlias("type", "类型");
        writer.addHeaderAlias("scene", "场景");
        //接收数据
        writer.write(hourEx, true);
        //指定字符集
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        //指定下载名字拼接,主要是前台传进来的数据
        String name = type + period;
        
         name = URLEncoder.encode(name, String.valueOf(StandardCharsets.UTF_8));
        response.setHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
        ServletOutputStream out = null;
        try {
            out = response.getOutputStream();
            writer.flush(out, true);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭writer
            writer.close();
        }
        //关闭输出Servlet流
        IoUtil.close(out);
        
        这样就可以了
        
        

下面是官网上的内容可做参考

// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter();
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
//out为OutputStream,需要写出到的目标流

//response为HttpServletResponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8"); 
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition","attachment;filename=test.xls"); 
ServletOutputStream out=response.getOutputStream(); 

writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);

设置颜色

//设置颜色
// 定义单元格背景色
StyleSet style = writer.getStyleSet();
// 第二个参数表示是否也设置头部单元格背景
style.setBackgroundColor(IndexedColors.RED, false);

合并单元格后的标题行,使用默认标题样式

// 合并单元格后的标题行,使用默认标题样式
 writer.merge(11,"4g预警小时");

hutool官网

image

相关文章

网友评论

      本文标题:hutool+poi库+excel导出功能

      本文链接:https://www.haomeiwen.com/subject/wigdhktx.html