Java 读取xlsx

Posted Milton

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 读取xlsx相关的知识,希望对你有一定的参考价值。

读取特别大的xlsx文件时, 需要使用StreamingReader, 可以控制JVM内存峰值在200M以内

InputStream is = new FileInputStream(new File(filePath));
StreamingReader reader = StreamingReader.builder()
        .rowCacheSize(10)    // number of rows to keep in memory (defaults to 10)
        .bufferSize(1024)     // buffer size to use when reading InputStream to file (defaults to 1024)
        .sheetIndex(0)        // index of sheet to use (defaults to 0)
        .read(is);            // InputStream or File for XLSX file (required)

for (Row r : reader) {
    for (Cell cell : r) {
        switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC:
                System.out.print("D" + cell.getNumericCellValue() + "\t");
                break;
            case Cell.CELL_TYPE_STRING:
                System.out.print("S" + cell.getStringCellValue() + "\t");
                break;
            case Cell.CELL_TYPE_BOOLEAN:
                System.out.print("B" + (cell.getBooleanCellValue() + "\t"));
                break;
        }
    }
    System.out.print("\n");
}

https://github.com/monitorjbl/excel-streaming-reader

相比较官方的方案

File file = new File("C:\\D\\Data Book.xlsx");
OPCPackage opcPackage = OPCPackage.open(file);
XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);

官方的方案内存占用明显较高.

 

以上是关于Java 读取xlsx的主要内容,如果未能解决你的问题,请参考以下文章

Java 读取xlsx

java读取txt/pdf/xls/xlsx/doc/docx/ppt/pptx

使用Apache POI读取Excel .XLSX时出错

在 Java 中读取 xlsx 复选框值

使用java读取xlsx格式的execl,除了poi还都有哪些方式

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例