栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot项目--使用easyPOI--实现excel,word,pdf的导入导出

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot项目--使用easyPOI--实现excel,word,pdf的导入导出

一、easyPOI简介
easyPOI是一个以Apache poi为基础的工具包、一款开源框架,用于实现excel,word,pdf的导入导出;开发者为Lemur。

特性
基于注解的导入导出,修改注解就可以修改Excel
支持常用的样式自定义
基于map可以灵活定义的表头字段
支持一对多的导出,导入
支持模板的导出,一些常见的标签,自定义标签
支持HTML/Excel转换
支持word的导出,支持图片,Excel

二、使用实例
1、添加依赖

		
            cn.easyproject
            orai18n
        

需要注意的是由于easypoi的依赖内部依赖原生的poi,所以,引入了easypoi的依赖之后,需要把原生的poi的依赖删掉

2、应用-导出excel
1)需要引入一个easyPoi导入导出工具类(网上应该很好找),如下图
2)应用-导出excel-Controller方法

	@ApiOperation("列表 导出")
    @PostMapping (value="/search/export")
    public void exportOrgList(HttpServletResponse response, @RequestBody CustomerVo customerVo) throws Exception {
    	//查询
        List list = customerService.searchAdmin(customerVo);
		//调用工具,生成workbook工作簿对象
        Workbook workbook=HysExcelUtil.exportExcel(list,"行政用户-列表",CustomerAdminVo.class);
		//配置response对象
        response.setContentType("application/x-excel");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-Disposition","attachment; filename=customer_admin_export.xls");
		//生成输出流对象,并把工作薄写入到输出流
        OutputStream oStream = response.getOutputStream();// 输出流
        workbook.write(oStream);//把工作薄写入到输出流
        //关闭流
        try {
            oStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

上面代码中的

HysExcelUtil.exportExcel(list,"行政用户-列表",CustomerAdminVo.class);

其中第三个参数CustomerAdminVo.class,是用来设定导出excel的列名、列顺序、与数据的映射关系、列的宽度、日期格式等;最好给每一个导出模板,配一个独立的vo类,用以个性化配置。

@ApiModel(value = "CustomerAdminVo", description = "用户")
@Data
public class CustomerAdminVo implements Serializable {

    private static final long serialVersionUID = -3477299713883180124L;

    @Excel(name = "账户名称", orderNum = "0", width = 30)
    @ApiModelProperty(value = "账户名称 不为空在账号表有记录",dataType ="String",required = true)
    private String accountName;

    @Excel(name = "真实姓名", orderNum = "1", width = 30)
    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @Excel(name = "手机号码", orderNum = "2", width = 30)
    @ApiModelProperty(name = "mobilNumber",value = "手机号码",dataType ="String")
    private String mobilNumber;

	@Excel(name = "添加时间", orderNum = "14", expertFormat =  "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}

其中,用于设置上述内容的@Excel注解,就是easyPOI提供的注解

import cn.afterturn.easypoi.excel.annotation.Excel;

注解的属性中,
name 列名,orderNum 顺序,width 列宽,expertFormat 时间字段导出格式(不为空时,按指定格式格式化时间)

3)应用-导出excel-结果

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017116.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号