侧边栏壁纸
  • 累计撰写 106 篇文章
  • 累计创建 42 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

excel-showcase

天明
2026-09-11 / 0 评论 / 0 点赞 / 1 阅读 / 0 字 / 正在检测是否收录...

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);
        }
    }
}

0

评论区