项目中导入表格,文件异常使得表格列数特别多,导致内存溢出,服务挂掉,所以对于文件做一个初始判断,也试过POI查询列数,但是耗时太久,后来发现了EasyExcel,代码如下:
public static class FirstRowListener extends AnalysisEventListener { private int columnCount = 0; @Override public void invoke(Object data, AnalysisContext context) { if (columnCount == 0) { columnCount = ((LinkedHashMap)(data)).size(); } } @Override public void doAfterAllAnalysed(AnalysisContext context) {} public int getColumnCount() { return columnCount; } } public static Integer getCount(File file){ FirstRowListener listener = new FirstRowListener(); EasyExcel.read(file, listener).sheet().doRead(); int columnCount = listener.getColumnCount(); return columnCount; }
通过调用.getCount,可直接获取当前表格列数