EasyExcel-已停止维护
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
/** Excel工具类
* <dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>4.0.3</version>
</dependency>
*/
public class EasyUtil {
static class EasyNoModelDataListener extends AnalysisEventListener<Map<Integer, String>> {
private List<Map<Integer, String>> dataList;
EasyNoModelDataListener(List<Map<Integer, String>> dataList) {
this.dataList = dataList;
}
@Override
public void invoke(Map<Integer, String> data, AnalysisContext context) {
dataList.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}
public static void main(String[] args) {
String[] files = { "/Users/jnliok/Downloads/test1.xlsx", "/Users/jnliok/Downloads/test1.xls",
"/Users/jnliok/Downloads/test1.csv" };
for (String fileName : files) {
List<Map<Integer, String>> dataList = new ArrayList<>();
EasyExcel.read(fileName, new EasyNoModelDataListener(dataList)).sheet().doRead();
// 将数据转换为字符串,并将每行数据用逗号分隔,每行数据之间用换行符分隔
String alllineString = dataList.stream().map(map -> map.values().stream().collect(Collectors.joining(",")))
.collect(Collectors.joining("\n"));
System.out.println(alllineString);
}
}
}
Fesod - 兼容easyExcel,apache维护
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.fesod.sheet.FesodSheet;
import org.apache.fesod.sheet.context.AnalysisContext;
import org.apache.fesod.sheet.event.AnalysisEventListener;
/**
* Excel文件读取工具类
* <dependency>
* <groupId>org.apache.fesod</groupId>
* <artifactId>fesod-sheet</artifactId>
* <version>2.0.2-incubating</version>
* </dependency>
*
*/
public class FesodUtil {
static class NoModelDataListener extends AnalysisEventListener<Map<Integer, String>> {
private List<Map<Integer, String>> dataList;
NoModelDataListener(List<Map<Integer, String>> dataList) {
this.dataList = dataList;
}
@Override
public void invoke(Map<Integer, String> data, AnalysisContext context) {
dataList.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}
public static void main(String[] args) {
String[] files = { "/Users/jnliok/Downloads/test1.xlsx", "/Users/jnliok/Downloads/test1.xls",
"/Users/jnliok/Downloads/test1.csv" };
for (String fileName : files) {
List<Map<Integer, String>> dataList = new ArrayList<>();
FesodSheet.read(fileName, new NoModelDataListener(dataList))
.sheet()
.doRead();
// 将数据转换为字符串,并将每行数据用逗号分隔,每行数据之间用换行符分隔
String alllineString = dataList.stream().map(map -> map.values().stream().collect(Collectors.joining(",")))
.collect(Collectors.joining("\n"));
System.out.println(alllineString);
}
}
}
评论区