我在用图书馆
org.apache.poi
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
我在努力
org.xml.sax
库,但无法将其转换为工作簿
注意:在最终结果中,我希望返回XSSFWorkbook
上面的代码会内存溢出,任何帮助都将提前感谢
InputStream is = new FileInputStream(new File("yourXLSX file path"));
Workbook workbook = StreamingReader.builder().rowCacheSize(100).bufferSize(4096).open(is))
for (Sheet sheet: workbook) {
//System.out.println(sheet.getSheetName());
for (Row r: sheet) {
for (Cell c: r) {
//System.out.println(c.getStringCellValue());
}
}
}
如果输入数据对于可用内存来说太大,则有两个选项。
a)通过-Xmx java命令行选项提供更多内存
b)使用POI的Streaming-API。
选项 a) 如果文件最终适合内存,则很容易做到。如果文件对于可用的物理内存来说太大,则需要查看流式处理选项,尤其是示例 XLSX2CSV 显示了如何从任意大的.xlsx文件中读取数据,尽管具有一些需要访问多个单元格的功能,这些功能不是开箱即用的。
问题内容: 我正在尝试通过Apache POI读取大型Excel文件xlsx,例如40-50 MB。我的内存不足异常。当前的堆内存为3GB。 我可以阅读较小的excel文件,没有任何问题。我需要一种方法来读取大型excel文件,然后通过Spring excel视图将它们作为响应返回。 我首先开始使用, 但是每个Apache POI API的使用成本很高,因此我改用OPC封装方式,但效果仍然相同。我
我可以使用Apache POI只读取Excel文件的第一行吗?我不想读取整个文件,因为它有50,000行,读取最多需要10分钟(性能是一场灾难)。我通过文件上传获取字节。我的选项是字节数组或InputStream。现在我正在这样做:
我遵循这个http://blog.kondratev.pro/2015/08/reading-xlsx-on-android-4-and-hopefully.html对其进行了编码。 尝试逐行读取: 但结果却是:
问题内容: 我的应用程序需要什么 1)读取.xls或.xlsx格式的大型excel文件 2)将每一列插入数据库中的一行,上一列作为下一列的父级 意味着如果我有5列和30,000行,那么我想插入1列作为父级, 第二列是第一列的子级,第三列是第二列的子级,依此类推…即树形结构 现在任何人都可以建议我最好的API以Java语言完成此操作。 经过一番谷歌搜索后,我发现现在有很多API,但这是最好的 参考见
问题内容: 我正在尝试读取Excel文件(Office 2003)。有一个Excel文件需要上载并对其内容进行解析。 通过Google,我只能找到以下相关(且主题不足)的答案:生成Excel文件,读取Excel XML文件,读取Excel CSV文件或不完整的废弃项目。我拥有Office 2003,因此如果我需要那里的任何文件,都可以使用它们。它已安装在我的盒子上,但尚未安装,也无法安装在我的共享
我正在尝试读取一个大的XLSX文件。Excel文件大约有500k行,我需要读col 2。 它一直打印到第39723行,然后抛出以下异常 main.java:484=If(!cell.getStringCellValue().ToString().trim().IsEmpty())如果我删除该行并只打印行号,就可以正常工作。我需要帮助如何获得col2的字符串值。