10

我有一个很大的 xlsx 文件,我必须在其上实现搜索选项的大量数据我使用了 Apache POI jar 和 jxl jar,以便在行和列之间进行搜索。但是在大数据之间遍历需要花费大量时间,有人可以帮助我,即任何 jar 文件或任何其他可用于在 Excel 文件上更快地进行搜索的概念......

    String searchValue="my_value_to_search";
    for (int i = 0; i < sheet.getColumns(); i++) {
        for (int j = 0; j < sheet.getRows(); j++) {
            value = sheet.getCell(i, j);
            valueType = value.getType();
            String val=getCellType(valueType, value);
            if (val != null&&val==searchValue) {
                //   To do manipulation.
            }
        }
    }
4

1 回答 1

6

瓶颈通常是一次在内存中表示大型 XLSX 文件所需的大量内存。(XLS 在设计上不可能那么大,这通常不是问题)。要在没有内存问题的情况下搜索一个非常大的 XLSX 文件,您可以这样做:

  • xlsx 文件实际上是一个 ZIP 存档,您可以打开它并读取内容,就像它是一个 ZIP 文件一样。
  • ZIP 内是文件夹“xl/worksheets”,其中包含文件 sheet1.xml(和 sheet2.xml 等)
  • 您可以使用普通的 XmlReader 解析这些 XML 文件(使用回调以获得最大的性能和最少的内存消耗)。

希望有帮助。

于 2013-12-23T10:58:52.857 回答