alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具

Home Page:https://easyexcel.opensource.alibaba.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

不创建对象用String接收日期类型数据异常

VisionsOfIdiot opened this issue · comments

建议先去看文档

快速开始常见问题

触发场景描述

不创建对象自定义监听器来读取Excel文件,指定了返回类型为String,期望获取Excel单元格内显示的字符串,但是返回的是日期类型的字符串,而非单元格内显示数据
image
image

读取入口

        ExcelHeaderReadListener listener = new ExcelHeaderReadListener();
        EasyExcel.read(file,listener).useDefaultListener(true).sheet(0).doRead();

自定义监听器

package org.example.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import java.util.Collections;
import java.util.Map;

public class ExcelHeaderReadListener extends AnalysisEventListener<Map<Integer, String>> {


    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println(headMap);
    }

    @Override
    public void invoke(Map<Integer, String> integerStringMap, AnalysisContext analysisContext) {
        System.out.println(integerStringMap);
    }


    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
    }
}

提示的异常或者没有达到的效果

image
期望获取到的字符串是1990年10月10日

这个是对应的Excel文件
带时间Excel文件.xlsx

应该是默认的单元格数据转换器的锅,你试试 自定义转换器,可参考这几个类
com.alibaba.excel.converters.date.DateStringConverter
com.alibaba.excel.converters.date.DateNumberConverter
com.alibaba.excel.converters.date.DateDateConverter