0

目前我正在构建一个示例应用程序,它应该读取一个中等大小的 excel 表(10-15MB),然后选择几列并创建与 excel 表中的行数一样多的文本文件,但只包含选定的列。

例如,为了清楚起见。假设我的 xl 表包含 5 列 Name、empid、email、mobileNo:和 address,总行数或记录为 50000。现在我想创建 50000 个文本文件,每个文件包含 Name、mobileNo:和仅 emailId

由于 excel 表的大小很大,而且 excel 表可以是 xlsx 或 xls,我正在使用 apache poi 来阅读它。但我无法决定在此之后要遵循的任何最佳方法。

方法 1:我是否应该尝试将整个 excel 工作表移动到 mysql 之类的数据库中。因此,我将不得不根据检索到的标题列动态创建一个表并转储其中的所有行。然后使用选择查询我可以获得必要的列并创建文本文件

方法 2:我阅读了可以动态创建类文件的 ASM 库。我正在考虑每行创建一个对象并将所有内容添加到列表中。但是在这里检索特定列将涉及大量迭代,并且列表的大小将与 excel 表中的行成正比,这将是巨大的。

目前我无法决定任何方法。我确信这两种方法都很糟糕:(。任何关于如何进行的建议都会对我有很大的帮助。

4

1 回答 1

1

你为什么不创建一个内存数据结构来保存电子表格的信息内容并从中工作。

它可以像字符串数组列表一样简单,其中每个数组代表一行。要处理列名,请使用将列名映射到列号的哈希图。


您的方法 1 太过分了……除非电子表格太大而无法存储在内存中。

您的方法 2 不必要地复杂。动态创建类文件并不能实现使用简单的通用数据结构无法实现的任何事情。

于 2012-04-14T12:06:40.310 回答