easyExcel的简单使用案例

Java解析或者生成Excel比较常用的框架有Apache poi、jxl。后来接触了easyExcel感觉使用起来更加方便。因此以下为一个简单的使用案例。

引入easyExcel依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>easyexcel</artifactId>
     <version>2.1.6</version>
 </dependency>

定义导出数据内容

创建导出的数据类,同时这也是导出到Excel的数据模板。

@ContentRowHeight(20)
@HeadRowHeight(25)
@ColumnWidth(25)
public class MessageData{
	@ExcelProperty(value ="电话号码", index = 0)
	private String mobileNo;
	@ExcelProperty(value = "短信内容", index = 1)
	private String content;
	public String getMobileNo(){return mobileNo;}
	public void setMobileNo(String mobiLeNo){this.mobileNo = mobiLeNo;}
	public String getContent(){return content;}
	public void setContent(String content){ this.content = content;}
	@0verride
	public String toString(){
	return "MessageData{" +
	"mobileNo='" + mobileNo +'\''+
	",content='" + content +'\''+
	'}';
   }
}
  1. @ExcelProperty:value是显示在Excel表格中的表头,index是显示在Excel表格中的列的位置。

  2. @ContentRowHeight(20) @HeadRowHeight(25) @ColumnWidth(25) 设置表头和单元格的一些属性。

导出数据到excel:

public static void exportFile(String filePath, int dataNum) {
	long start = System.currentTimeMiLLis();
	File file = new File(fiLePath);
	List assetExcelVos = new ArrayList<>();
	for(int i = 0; i < dataNum; i++){
	MessageData messageData = new MessageData();
	messageData.setMobileNo(MobileNoUtil.getMobiLeNoRandom());
	messageData.setContent("恭喜您已获我行授信768100元,当天可出结果,随借随还,先息后本。办理回复Y,详询186xxxx退订回复T 【我家银行】");
	assetExcelVos.add(messageData);
	}
	//生成本地文件
	EasyExcel.write(file.getAbsolutePath(),MessageData.class).sheet( sheetName: "手工短信").doWrite(assetExcelVos);
	long end = System.currentTimeMiLLis();
	System.out.println("执行时长:" +(end - start)+"毫秒。");
}
  1. filePath:输出的文件路径。

  2. dataNum:数据条数。

导入excel数据:

public static void readFile(String filePath) {

List<MessageData> assetExcelList = new ArrayList<>();

EasyExcel.read(fiLePath, MessageData.class, new AnalysisEventListener<MessageData>() {         
    @Override 
    public void invoke(MessageData messageData, AnaLysisContext argl) { 
      //读取每条数据 
    assetExcelList.add(messageData);
    }
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnaLysisContext context) {             
        //读取到列头
        System.out.println(headMap); }
        @Override
        public void doAfterAllAnalysed^natysisContext argd) { 
        //读取完毕
            System.out.printIn("END");
        }
    }).sheet().doRead();
}
  1. filePath:待读取文件路径 。

 数据输出到文件的效果

经过测试,一般情况下生成的100W如图所示内容文件时间约为20秒左右,解析100W数据需要时间在15秒左右。解析生成文件和解析速度还是很快的,比之前用过的一些的其他的工具要简单方便。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值