java使用EasyExcel导入导出excel

一、准备工作
1、导包

org.apache.poi poi 3.17 org.apache.poi poi-ooxml-schemas 3.17 org.apache.poi poi-ooxml 3.17 com.alibaba easyexcel 2.1.7 二、了解注解 1、常用注解 字段注解 类注解 @ColumnWith(列宽) @ColumnWidth(全局列宽) @ExcelProperty(字段配置) @HeadFontStyle(头样式) @HeadRowHeight(标题高度) @ContentFontStyle(内容字体样式) @ContentRowHeight(内容高度) 2、@ExcelProperty注解 必要的一个注解,注解中有三个参数value,index分别代表列明,列序号 value和index只能二选一,通常不用设置converter 1.value 通过标题文本对应 2.index 通过文本行号对应

@ExcelProperty(value = “编号”, index = 0)
private Long id;
3、@ColumnWith注解
设置列宽度,只有一个参数value,value的单位是字符长度,最大可以设置255个字符,因为一个excel单元格最大可以写入的字符个数就是255个字符

public class ImeiEncrypt {
@ColumnWidth(value = 255) //excel单个单元格最大长度255
private String message;
}
4、@ContentFontStyle注解
用于设置单元格内容字体格式的注解

参数 含义
fontName 字体名称
fontHeightInPoints 字体高度
italic 是否斜体
strikeout 是否设置删除水平线
color 字体颜色
typeOffset 偏移量
underline 下划线
bold 是否加粗
charset 编码格式
5、@ContentStyle注解
设置内容格式注解

参数 含义
dataFormat 日期格式
hidden 设置单元格使用此样式隐藏
locked 设置单元格使用此样式锁定
quotePrefix 在单元格前面增加`符号,数字或公式将以字符串形式展示
horizontalAlignment 设置是否水平居中
wrapped 设置文本是否应换行。将此标志设置为true通过在多行上显示使单元格中的所有内容可见
verticalAlignment 设置是否垂直居中
rotation 设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°90°,07版本的Excel旋转角度区间为0°180°
indent 设置单元格中缩进文本的空格数
borderLeft 设置左边框的样式
borderRight 设置右边框样式
borderTop 设置上边框样式
leftBorderColor 设置左边框颜色
rightBorderColor 设置右边框颜色
topBorderColor 设置上边框颜色
bottomBorderColor 设置下边框颜色
fillPatternType 设置填充类型
fillBackgroundColor 设置背景色
shrinkToFit 设置自动单元格自动大小
6、@HeadFontStyle注解
用于定制标题字体格式

参数 含义
fontName 设置字体名称
fontHeightInPoints 设置字体高度
italic 设置字体是否斜体
strikeout 是否设置删除线
color 设置字体颜色
typeOffset 设置偏移量
underline 设置下划线
charset 设置字体编码
bold 设置字体是否加粗
7、ExcelIgnore注解
不将该字段转换成Excel

三、编码
1、映射实体类----例子
package com.pingou.admin.bean.param;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
@ContentRowHeight(35) //文本行高度
@HeadRowHeight(40) //标题高度
@ColumnWidth(40)
public class OrderExcel {
//设置excel表头名称
@ExcelProperty(value = “编号”, index = 0)
private Long id;
@DateTimeFormat(“yyyy年MM月dd日HH时mm分ss秒”)
@ExcelProperty(value = “创建时间”, index = 1)
private Date createTime;
}
以上是简单的举例,如果有更多属性自己逐个写就好,然后塞进该实体类就好~
image

2、生成excel
public void excel() {
//欲导出excel的数据结果集
List excel = new ArrayList<>();
//省略 向结果集里插入数据的操作

    //UUID生成唯一name
    String name = UUID.randomUUID().toString().replaceAll("-", "") + ".xlsx";
    //实现excel写的操作

    //1 设置写入文件夹地址和excel文件名称
    String filename = "/路径" + name;
    JSONObject json = new JSONObject();
    try {
        // 2 调用easyexcel里面的方法实现写操作
        // write方法两个参数:第一个参数文件路径名称,第二个参数实体类class
        EasyExcel.write(filename, OrderExcel.class).sheet("名字").doWrite(excel);
        //上传到fastdfs上 不上传的话只有本机可以找到,在上面路径下生成excel  
        File file = new File(filename);
        String path = fastDFSClient.upload(new FileInputStream(file), name, null);
        path = (this.fastdfsDomain + path);
        json.put("url", path);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        new File(filename).delete();
    }
}
USB Microphone  https://www.soft-voice.com/

Wooden Speakers https://www.zeshuiplatform.com/
亚马逊测评 www.yisuping.cn
深圳网站建设www.sz886.com

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值