我用的jxl.jar
读取execl,获取列数时报内存溢出错误
,我很纳闷,就13列,获取列数怎么内存溢出呢
我excel是13列不到4万数据

解决方案 »

  1.   


    /**
     * 初始化xls文件
     * @param fnp
     */
    private void loadXLS(String pfn) throws ExeclException {
    try {
    book = Workbook.getWorkbook(new FileInputStream(pfn));
    } catch (BiffException e) {
    throw new ExeclException(e.getMessage());
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    throw new ExeclException(e.getMessage());
    } catch (IOException e) {
    // TODO Auto-generated catch block
    throw new ExeclException(e.getMessage());
    }
    }

    private void changeSheet() throws ExeclException{
    Sheet[] sheets = book.getSheets();
    //查找参合数据或乡村组工作表
    try {
    for(Sheet sheet : sheets) {
    System.out.println(sheet.getColumns());
    if(sheet.getColumns() == COlUMN) {
    listSheet.add(sheet);
    sheet = null;
    }
    }
    } catch (Exception e) {
    sheets = null;
    e.printStackTrace();
    throw new ExeclException(e.getMessage());
    }
    sheets = null;
    }
    红色字体报错
      

  2.   

    lz 你的xls 文件多大?
      

  3.   

    System.out.println(sheet.getColumns());lz 你跟踪进去看看 链接一下 jxl.jar 的源代码, 看看具体在哪行代码上,另外感觉处理 excel 用 apache 的 POI 比较好,感觉一点不比jxl复杂,而且功能强大,jxl 功能有点弱, 以前往excel 追加数据 用 jxl 就感觉很复杂, 用POI轻松搞定
      

  4.   

    版本兼容吗,最新的 excel是xml的