Apache POI xlsx读取错误“限制超过65536方法的dex文件”Android

时间:2013-06-27 04:29:41

标签: android apache apache-poi

我尝试在Android中使用POI库读取xlsx文件。有五个jar文件。其中3个是主要的休息依赖。如果我排除任何我得到的错误(类丢失)。

当我在我的项目中包含所有5个jar(示例空项目)时,它不会编译并且给出错误方法限制超过65536 dex可以拥有。我试过以下来解决这个问题:

  1. 启用项目程序

  2. 尝试创建多个dex文件,但由于依赖性问题,我无法将它们放在单独的dex文件中。

  3. 在项目属性中启用dex.force.jumbo = true但无效。

  4. 我正在尝试以下代码

    public void getto()
    {
        int totalRows;
        String destDir = Environment.getExternalStorageDirectory()+ "/Download/csv_contract_sample2.xlsx";
        try { 
            System.out.println("destDir==> "+destDir); 
            XSSFWorkbook workBook = new XSSFWorkbook(destDir); 
            XSSFSheet sheet = workBook.getSheetAt(0); 
            totalRows = sheet.getPhysicalNumberOfRows(); 
            System.out.println("total no of rows >>>>"+totalRows); 
    
            } catch (IOException e) { 
            e.printStackTrace(); 
            } 
    }
    

    如果我创建一个java项目,它的工作正常。但对于Android上面的问题是存在的。是否有一个很好的解决方案或任何其他xlsx读取库?

2 个答案:

答案 0 :(得分:1)

xls是一个zip文件。因此,我们可以提取zip并获取内部的xml文件,然后我们可以自己解析它以获取工作表数据。

这对于xls和xlsx都适用。

答案 1 :(得分:-1)

甚至没有其他API可用于读取xlsx文件的POI。