导包
com.alibaba
easyexcel
3.0.4
org.apache.poi
poi-ooxml
org.apache.poi
poi
4.1.2
org.apache.poi
poi-ooxml
4.1.2
工具类
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
public class YcsExcelUtils {
public static List> parseToContent(InputStream inputStream) {
List> result = new ArrayList<>();
EasyExcel.read(inputStream, new ContentListener(result)).sheet().doRead();
return result;
}
public static List parseToObject(InputStream inputStream, Class type) {
List result = new ArrayList<>();
EasyExcel.read(inputStream, type, new ObjectListener(result)).sheet().doRead();
return result;
}
public static void objectToExcel(Class> type, List data, OutputStream outputStream) {
EasyExcel.write(outputStream, type).sheet().doWrite(data);
}
public static void contentToExcel(List> head, List> data, OutputStream outputStream) {
EasyExcel.write(outputStream).head(head).sheet().doWrite(data);
}
}
class ObjectListener extends AnalysisEventListener {
private final List result;
public ObjectListener(List result) {
this.result = result;
}
@Override
public void invoke(T t, AnalysisContext analysisContext) {
result.add(t);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
class ContentListener extends AnalysisEventListener
测试
public class SelfTest {
private File desktopDir;
private String desktopPath;
@Before
public void desktopDirTest() {
desktopDir = FileSystemView.getFileSystemView().getHomeDirectory();
desktopPath = desktopDir.getAbsolutePath();
}
@Test
public void ExcelUtils() throws FileNotFoundException {
InputStream inputStream = new FileInputStream(desktopPath + "/year.xlsx");
List> lists = YcsExcelUtils.parseToContent(inputStream);
System.out.println(JSON.toJSONString(lists));
List channelInits = YcsExcelUtils.parseToObject(inputStream, ChannelInit.class);
System.out.println(JSON.toJSONString(channelInits));
}
}