使用java在xlsx和xls文件中搜索

时间:2013-12-23 09:48:32

标签: java excel apache-poi jxl jxls

我有一个大的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.
            }
        }
    }

1 个答案:

答案 0 :(得分:6)

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

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

希望有所帮助。