首页 文章

如何解决java.lang.VerifyError:org / apache / poi / xssf / usermodel / XSSFWorkbook?

提问于
浏览
8

我正在尝试从资产文件夹中读取xlsx文件 . 我收到以下例外,

05-16 10:12:05.613:E / AndroidRuntime(2915):致命异常:主05-16 10:12:05.613:E / AndroidRuntime(2915):java.lang.VerifyError:org / apache / poi / xssf /的usermodel / XSSFWorkbook

在此例外之前,我收到了一些警告,如,

  • 找不到方法org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument $ Factory.parse,从方法org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead引用

  • VFY:无法解决异常类3612(Lorg / apache / xmlbeans / XmlException;)

我在我的应用程序中添加了poi 3.12库,库截图如下,

enter image description here

我在Order and Export中检查了poi-3.12和poi-ooxml-3.12 jar文件,截图如下,

enter image description here

我使用下面的代码,

InputStream is = context.getAssets().open("sample.xlsx"));
        XSSFWorkbook workbook = new XSSFWorkbook(is);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Cell cell = sheet.getRow(0).getCell(0);
        String value = cell.getStringCellValue() + "";

我想读取和写入.XLSX和.XLS文件 . 如何解决这个问题?

提前致谢 .

2 回答

  • 0

    你应该把这些 jar 连接到你的项目 .

    jars you need

    然后使用此代码进行阅读

    public static void readXLSXFile() throws IOException
        {
            InputStream ExcelFileToRead = new FileInputStream("C:/Test.xlsx");
            XSSFWorkbook  wb = new XSSFWorkbook(ExcelFileToRead);
    
            XSSFWorkbook test = new XSSFWorkbook(); 
    
            XSSFSheet sheet = wb.getSheetAt(0);
            XSSFRow row; 
            XSSFCell cell;
    
            Iterator rows = sheet.rowIterator();
    
            while (rows.hasNext())
            {
                row=(XSSFRow) rows.next();
                Iterator cells = row.cellIterator();
                while (cells.hasNext())
                {
                    cell=(XSSFCell) cells.next();
    
                    if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING)
                    {
                        System.out.print(cell.getStringCellValue()+" ");
                    }
                    else if(cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
                    {
                        System.out.print(cell.getNumericCellValue()+" ");
                    }
                    else
                    {
                        //U Can Handel Boolean, Formula, Errors
                    }
                }
                System.out.println();
            }
    
        }
    
  • 4

    更新了您的代码,以便能够读取和写入.XLSX和.XLS文件

    InputStream is = context.getAssets().open("sample.xlsx"));
    Workbook workbook = WorkbookFactory.create(is);
    Sheet sheet = workbook.getSheetAt(0);
    Cell cell = sheet.getRow(0).getCell(0);
    String value = cell.getStringCellValue() + "";
    

    对于您的图书馆,请看这里android getting java lang verify error when using external java lib

相关问题