当前位置: 首页 > 知识库问答 >
问题:

如何用SXSSF流式api编辑已有的大型excel文件

陈铭晨
2023-03-14

我有一个很大的.xlsx excel工作表,有40万行。我想在现有的工作簿中阅读和写作。

当我尝试使用Apache poi在java中阅读它时,使用了以下代码:

FileInputStream fileInputStream = new FileInputStream(new File(excelPath));
Workbook wb = new XSSFWorkbook(fileInputStream);

这段代码的第二行占用最多5GB的RAM。

是否有任何方法可以对现有的大型excel工作簿进行读写操作,这些工作簿的行数超过40万行。

共有1个答案

翟光赫
2023-03-14

看看POI的“概述”页面的底部。它有这样的表:

最后一列显示SXSSF只能写入文件,不能读取它们。

要读取文件、流,第三列显示需要使用XSSF EventModel。

 类似资料:
  • 我正在使用POI()的流式工作表编写一个大型Excel表(超过一百万条记录),但我得到的是。下面是我的代码:

  • 如何用SXSSF流式api编辑已有的大型excel文件 如何使用SXSSF写入现有文件? 我有一个现有的文件,我需要更新内容,更改一些内容的单元格颜色。 null 如何通过更改单元格颜色来更新结果文件? }

  • 我需要做以下工作 1) 复制一个巨大的excel文件1400*1400并复制一份。 2)读取复制的文件并添加新的列和行,并同时进行编辑。 3) 这将是一个独立的程序,而不是在服务器上。我有低内存占用和快速性能的限制。 我做了一些阅读,发现以下内容 1)没有 API 可以复制一个巨大的文件 2)SXSSF可以用于写,但不能用于读 3)XSSF和SAX(事件API)可以用于读取,但不能用于editin

  • 我有一个.xlsx文件,其中包含多个包含不同数据的工作表。在所有的工作表中,一个工作表需要容纳接近100,000行数据,并且需要使用带有POI的Java来写入数据。 对于SXSSFWorkbook,这似乎相当快速和简单,在这里我只能在内存中保留100行,但缺点是我只能写入一个新文件(或覆盖现有文件)。 此外,我不允许‘加载’一个现有的文件,即 null null 我可以使用工作簿工厂: null

  • 问题内容: 我正在尝试设置一个非常基本的html5页面,该页面会加载20MB的.mp4视频。看来,浏览器需要下载整个内容,而不仅仅是播放视频的第一部分并在其余部分进行流传输。 我在搜索时发现的最接近的内容…我尝试了“手刹”和“数据回合”,两者均未发挥作用: 关于如何执行此操作或是否可行的任何想法? 这是我正在使用的代码: 问题答案: 确保moov(元数据)在mdat(音频/视频数据)之前。这也称为

  • 问题内容: 我需要使用python编辑Excel工作簿。有没有这样做的方法,而无需阅读工作簿,编辑我想要的内容并将其写回?即有没有一种方法可以即时进行,因为我只需要在每张纸上编辑几个值? 我已经看过了,和,但他们似乎只支持(据我可以工作),阅读和写作不是编辑。我无法使用,因为我正在使用linux。 对库或特定的工作方式有何建议? 问题答案: xlutils有一个复制模块,可能会与您交错