工具类中获取title方法
/*初始化获取表头*/
public static List<String> getTitles(MultipartFile file) throws IOException{
try(InputStream inputStream = file.getInputStream()){
List<String> titles = new ArrayList<>(16);
ExcelEventListener listener = new ExcelEventListener();
EasyExcel.read(inputStream,listener).sheet(0).doReadSync();
Map<Integer, String> map = listener.getMap().get(0);
map.values().forEach(e->titles.add(e));
return titles;
}catch (Exception e){
log.error("初始化获取表头失败!{}",e);
throw e;
}
}
重写监听器
package indi.grant.financial.user.util;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
@Data
public class ExcelEventListener extends AnalysisEventListener<Map<Integer, String>> {
private Map<Integer, Map<Integer, String>> map = new ConcurrentHashMap<>();
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
log.info("解析到一条头数据:{}, currentRowHolder", headMap.toString(),context.readRowHolder().getRowIndex());
map.put(context.readRowHolder().getRowIndex(),headMap);
}
@Override
public void invoke(Map<Integer, String> integerStringMap, AnalysisContext analysisContext) {
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
log.info("表头解析完成!");
}
}
引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>