编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

EasyPOI导出(easypoi导出xlsx)

wxchong 2024-07-21 07:12:04 开源技术 13 ℃ 0 评论

在开发中总会遇到需要通过代码操作办公软件的情况,其中 excel 与 word 的操作最为频繁;

EasyPOI 是就算我们不会底层的 POI 也可以轻松完成 Excel 的操作。主打简单

首先基础搭建 第一步 在 Maven 中引入 easypoi

        <!-- easypoi的支持    excel导入导出 -->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.2.0</version>
        </dependency>

准备一个类

/**
 * @author laonian
 * @date 2021-12-15 16:50
 *
 *  easypoi  excel 操作
 */
public class ExcelPo implements Serializable {

    private Long id;

    @Excel(name = "用户名称")
    private String name;

    /**
     *     @Excel:    代表这个字段要生成到excel中去
     *     @name:     这个excel的表头名称
     *     @width:    这一列的宽度设置
     */
    @Excel(name = "邮件",width = 20)
    private String email;
}

测试

    @Test
    public void testExcel() throws Exception {

        ExcelPo excel1 = new ExcelPo();
        excel1.setId(1L);
        excel1.setName("老北鼻");
        excel1.setEmail("laobeibi@qq.com");

        ExcelPo excel2 = new ExcelPo();
        excel2.setId(2L);
        excel2.setName("小宝贝");
        excel2.setEmail("小宝贝@qq.com");

        List<Object> list = new ArrayList<>();
        list.add(excel1);
        list.add(excel2);


        /**
         * 进行相应的展出
         *  参数1:一些基本配置(表头等)
         *  参数2:导出的类型
         *  参数3:导出的数据
         */
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(),
                ExcelPo.class, list);

        //保存数据
        FileOutputStream fos = new FileOutputStream("emp.xls");
        workbook.write(fos);
        fos.close();
    }

属性还有很多 可以去官网看一下 这就不一 一 写了

http://easypoi.mydoc.io/#text_217673

    @Excel(name = "邮件",width = 20)
    private String email;

    /*  type  1-文本 2-图片 3-函数  10-数字  默认文本  */
    @Excel(name = "头像",type = 2,width = 20)
    private String portrait;

    /*  时间格式  */
    @Excel(name = "生日",format = "yyyy-MM-dd")
    private String birthday;

    /*  true - 男    false - 女 */
    @Excel(name = "性别",replace = {"男_true","女_false"})
    private Boolean sex;

    /* 一对多的情况   比如部门等*/
    @ExcelEntity
    private Level level;
        Level level = new Level();
        level.setId(1L);
        level.setName("青铜");
        Level level1 = new Level();
        level1.setId(2L);
        level1.setName("黑铁");

        UserPo u1 = new UserPo();
        u1.setId(1L);
        u1.setName("老北鼻");
        u1.setEmail("laobeibi@qq.com");
        u1.setPhone("13666666666");
        u1.setBirthday("2021-08-13 11:35:18");
			  u1.setPortrait("1.jpg");
        u1.setSex(true);
        u1.setLevel(level);

        UserPo u2 = new UserPo();
        u2.setId(2L);
        u2.setName("小宝贝");
        u2.setEmail("xiaobaobei@qq.com");
        u2.setPhone("18888888888");
			  u2.setPortrait("2.png");
        u2.setBirthday("2020-02-13 11:35:18");
        u2.setSex(false);
        u2.setLevel(level1);
 

        List<Object> list = new ArrayList<>();
        list.add(u1);
        list.add(u2);


        /**
         * 进行相应的展出
         *  参数1:一些基本配置(表头等)
         *  参数2:导出的类型
         *  参数3:导出的数据
         */
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户信息","用户数据"),
                UserPo.class, list);

        //保存数据
        FileOutputStream fos = new FileOutputStream("emp.xls");
        workbook.write(fos);
        fos.close();

点个赞吧! 兄台们~ 没时间搞 明天再写导入

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表