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

Apache POI如何修改excel单元格而不加载整个excel(xlsx文件)

鲁品
2023-03-14

各位,

我们有一个与excel更新的可伸缩性有关的需求。

例如,我们有一个Excel工作簿,有10个工作表,每个工作表都有大量的数据。

现在我们要做的是用“新值”替换其中一个单元格。

但是在Apache POI中,我们理解了我们必须加载整个“工作簿”,即使我们必须修改excel表单中的数据。这消耗了巨大的内存,是不可接受的。

是否有任何单元格级读写(立即刷新)工具或API用于Excel。

共有1个答案

谭学名
2023-03-14

一个XLSX文件实际上是一个包含多个XML文件的ZIP文件。

您可以提取内容(但保持文件夹结构不变),只更改您想要的XML文件,将其压缩回去,然后替换原来的文件

 类似资料:
  • 我正在使用Poi.jar从excel表输入,想知道如何检查单元格是否为空。 现在我使用下面的代码。

  • 我有一个带有sheet1 excel文件,该文件的第2行和第10列有一个我需要读取的值。这是我的代码。 获取了cell对象Excel.Range后,我不知道如何读取该单元格的内容。我试着把它转换成数组并在它上面循环,我试着转换成字符串数组等等,我确信这是非常简单的。有没有直接的方法只得到一个字符串的单元格值?

  • 问题内容: 我只想从Excel文件(xlsx)中读取10行,而不一次加载整个文件,因为这不能在我的一台计算机上完成(内存不足)。 我尝试使用 看来文件先被加载然后又被分成几部分。 如何只读取第一行? 问题答案: 由于文件的性质(本质上是一堆压缩在一起的文件),您不能将文件戳到任意字节,而希望它成为您感兴趣的表中表格的第N行的开头。 你能做的最好是用与(从文件顶部跳过行)和(从底部跳跃行)参数。但是

  • 在谷歌搜索StackOverflow之后,我还没有找到与这个问题相关的地方。目前我可以将空白单元格读取为空,但一次只能读取一个单元格。所以我必须写这样的东西: 这对我来说不太好,因为我对重复感到不满。我们可以设置返回?

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

  • 我有一个对象列表,我试图为每个对象指定三行,我使用的"Office Open Xml库"有以下例程: 然而,它弹出一个错误,说不能合并已经合并的单元格。 所以问题是如何在Excel中合并两个以上的单元格?