首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用Java多线程同时读写同一个Excel表(HSSF/XSSF)

如何利用Java多线程同时读写同一个Excel表(HSSF/XSSF)
EN

Stack Overflow用户
提问于 2020-02-09 05:48:59
回答 1查看 644关注 0票数 0

我需要用Java读取Excel表并将其写入同一个工作表。它适用于单线程。由于它逐个记录地处理,所以它成为耗时的过程。我想一次使用多线程处理多个记录。

示例文件- File.xlsx

名称和年龄从工作表中读取,并应用一些逻辑并写入备注栏。

假设我有1000条记录,我想用多线程同时处理500条记录。

在上面的场景中,两个线程开始读取(名称和年龄列)和写入(备注列)到同一个Excel表。

第一线程应该处理1到500,

第二个线程应该处理501到1000。

如何才能得到这方面的最佳解?我正在使用POI处理Excel。

EN

回答 1

Stack Overflow用户

发布于 2020-02-09 08:47:06

你所要求的不太可能可靠地工作。这可以归结为Apache的线程安全属性。常见问题说:

简而言之:在不同的线程中处理不同的文档--对象将工作。在多个线程中访问相同的文档将无法工作。

您希望使用多个线程同时读取和写入相同的电子表格。这就是FAQ说的不安全的用例。

如何才能得到这方面的最佳解?

为了获得更快的解决方案,您在处理数据时需要对数据使用其他表示形式(即不是Excel电子表格):

  • 您可以获得Excel将数据导出为CSV文件,处理该文件以创建新的CSV,然后将CSV重新导入电子表格。
  • 您可以完全远离电子表格,例如使用数据库。

或者,如果您使用C#编写代码,则可以选择直接与Excel应用程序交互。有关一些想法,请参见下面的问答。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60133843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档