Easypoi使用简介

Easypoi使用

简介

在项目中,有时会出现需要将数据库数据导出报表等功能,这时一般会用到poi库。poi是一个专门给Java程序提供格式文档读写功能的API接口,包括各种微软的格式文档入excel、word等。最常用的还是Excel格式导入导出。
Easypoi是在poi接口基础上进行了封装,简化了操作。
使用Easypoi导出仅需以下几步:

  1. 添加依赖项
  2. 改造模型,添加注解
  3. 从数据库查询数据,使用Easypoi工具类生成Workbook对象,存储为文件(导出)。

添加依赖项

<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>

模型添加注解

Easypoi注解包含下面几类

  • Excel 这个是最基本常用的注解,注解在模型字段上,可添加列名、列的排序、列宽、格式等属性
  • ExcelTarget 用于外层的模型实体,可注解行高、字体大小等属性
  • ExcelEnity 用于标记实体内部类是否继续穿透
  • ExcelCollection 用于注解集合字段
  • ExcelIgnore 忽略这个属性

示例:

public class StudentEntity implements java.io.Serializable {
    /**
     * id
     */
	@ExcelIgnore 
    private String        id;
	
    /**
     * 学生姓名
     */
    @Excel(name = "学生姓名", height = 20, width = 30, isImportField = "true_st")
    private String        name;
    /**
     * 学生性别
     */
    @Excel(name = "学生性别", replace = { "男_1", "女_2" }, suffix = "生", isImportField = "true_st")
    private int           sex;

    @Excel(name = "出生日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    private Date          birthday;

    @Excel(name = "进校日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd")
    private Date registrationDate;

 }

生成Workbook对象

Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("计算机一班学生","学生"),
            StudentEntity .class, list);
workbook.setSheetName(0, fileName);
        workbook.getSheetAt(0).setDefaultRowHeight((short)21);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String savePath = Constants.EXCEL_FILE_PREFIX + fileName + sdf.format(new Date()) + ".xls";
        String accessPath = fileAccessUrlPrefix + savePath;

        try {
            File filePath = new File(localPathPrefix + BosConstants.EXCEL_FILE_PREFIX);
            if (!filePath.exists()) {
                filePath.mkdirs();
            }

            File localFile = new File(localPathPrefix + File.separator + savePath);
            OutputStream os = new FileOutputStream(localFile);

            workbook.write(os);
            os.flush();
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }            

参考:EasyPos教程

评论 12 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

hornsey2012

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值