如何使用 POI 读取和编辑巨大的 Excel 文件?

2024-04-29

我需要执行以下操作

1)复制一个巨大的1400*1400的excel文件,并制作一份副本。

2)读取复制的文件并添加新的列和行,同时进行编辑。

3)这将是一个独立的程序,而不是在服务器上。我有内存占用低和性能快的限制。

我读了一些书并发现了以下内容

1)没有API来复制这么大的文件

2)SXSSF可以用于写入,但不能用于读取

3)XSSF和SAX(事件API)可以用于读取,但不能用于编辑。如果我尝试再次读取并存储为对象,我将遇到内存问题。

请问你能帮我解决这个问题吗?


假设您的内存大小足以使用 XSSF/SAX 读取和 SXSSF 写入,让我建议以下解决方案。

1)使用XSSF/SAX读取文件。对于每一行,使用行数据创建一个对象,并立即使用 ObjectOutputStream 或您认为方便的任何其他输出格式将其写入文件中。您将为每一行创建一个单独的文件。并且内存中只会有 1 行对象,因为您可以使用每一行数据不断修改同一对象。

2) 进行任何您需要的修改。对于需要修改的行,将相应的文件读回到行对象中,根据需要进行修改,然后写回。对于新行,只需在行对象中设置数据并将其写入新文件即可。

3) 使用 SXSSF 通过一次读取 1 行目标文件并将其存储在输出电子表格中来重新组装电子表格。

这样,内存中一次只有 1 行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 POI 读取和编辑巨大的 Excel 文件? 的相关文章

随机推荐