读取大于 50 mb 的大型 excel 文件 (.xlsx)

问题描述 投票:0回答:1

我正在尝试读取一个大的 Excel 文件,但它没有转换为工作簿对象。

用于读取 Excel 文件的依赖项。

<dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>5.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.1.0</version>
        </dependency>
    </dependencies>

示例代码如下:

 String filePath = "/Downloads/price_rau.xlsx";
        InputStream inputStream = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(inputStream);

问题:Java 控件卡在 WorkbookFactory.create(inputStream) 并且没有返回到工作簿对象。 有没有其他方法可以读取大尺寸的 excel 文件。

java java-8 apache-poi
1个回答
1
投票

你强调你有一个很大的 Excel 文件,所以我假设你遇到了内存问题。尽量不要将整个文件加载到内存中。 Apache POI 项目为此提供了一个流式 API,因此您可以读取数据并仅保留/处理相关部分。

另见https://poi.apache.org/components/spreadsheet/how-to.html#sxssf

© www.soinside.com 2019 - 2024. All rights reserved.