线程" main"中的例外情况使用apache POI从xlsx文件读取数据时出现org.apache.poi.POIXMLException异常

时间:2016-03-17 14:33:03

标签: java excel selenium-webdriver apache-poi xmlbeans

请在下面找到代码.....

if form1.is_valid():
    if form2.is_valid():
        form_obj = form.save()
        form2_obj = form2.save(commit=False)
        form2_obj.foreign_key = form_obj
        form2_obj.save()

在运行程序时,我遇到以下问题: -

package sanityTests;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

public class ApachePOI {

    public static void main(String[] args) throws Exception {

        File src = new File("C:/Users/Ishan/Desktop/TestData.xlsx");
        FileInputStream fis = new FileInputStream(src);
        XSSFWorkbook wb = new XSSFWorkbook(fis);   // To deal with XLSX workbook 
        //HSSFWorkbook wb1 = new HSSFWorkbook(fis1);   // To deal with XLS workbook

        XSSFSheet sheet1 =wb.getSheetAt(0);
        String data0 = sheet1.getRow(0).getCell(0).getStringCellValue();
        System.out.println(data0);
        wb.close();
    }
}

如果我将文件的格式从xlsx更改为xls,它可以正常工作。不确定如何解决错误。我已经包括了所有的罐子,如xml-beans和poi jar。仍然得到错误。请帮忙

1 个答案:

答案 0 :(得分:2)

您尚未为任何组件提供任何版本号。但是,XmlOptions.setLoadEntityBytesLimit(int)仅在XMLBeans version 2.6.0中添加(自2012年8月起),并且不会出现在2.4.0中。

据我所知,POI已经使用了2.6.0本身很长一段时间,但不知何故,该库的旧版本已包含在您的运行时依赖项中,并且需要更新。

总结一下:在项目中包含XMLBeans 2.6.0,POI将正常运行。