将excel文件表导入java时出错

将excel文件表导入java时出错,java,excel,apache-poi,Java,Excel,Apache Poi,我试图用java中两列的值创建一个双数组,但它无法识别我的工作表 我想我的路径名可能是问题所在,只是它是从目录中复制和粘贴的。(当然,除了额外的斜杠)。任何指向这个方向的指针都会有帮助 这是我的密码: 异常是由行“XSSFWorkbook工作簿=新XSSFWorkbook(fis)”引发的 package adina.twitter; 导入java.io.IOException; 导入java.util.Iterator; 导入java.io.File; 导入java.io.FileInputS

我试图用java中两列的值创建一个双数组,但它无法识别我的工作表

我想我的路径名可能是问题所在,只是它是从目录中复制和粘贴的。(当然,除了额外的斜杠)。任何指向这个方向的指针都会有帮助

这是我的密码:

异常是由行“XSSFWorkbook工作簿=新XSSFWorkbook(fis)”引发的

package adina.twitter;
导入java.io.IOException;
导入java.util.Iterator;
导入java.io.File;
导入java.io.FileInputStream;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.xssf.usermodel.XSSFCell;
导入org.apache.poi.xssf.usermodel.XSSFRow;
导入org.apache.poi.xssf.usermodel.xssfheet;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
导入java.lang.Iterable;
公共类读取文件{
公共静态void main(字符串[]args)引发IOException{
最终字符串文件\u PATH=“C:\\Users\\silbeab1\\Documents\\seedsActivity12Junv2.xlsx”;
String fileSheet=“screen\u name-user\u id”;
字符串[][]snId=null;
试一试{
FileInputStream fis=新的FileInputStream(新文件(文件路径));
XSSF工作簿=新XSSF工作簿(fis);
XSSFSheet worksheet=workbook.getSheet(fileSheet);
布尔标志=真;
System.out.println(标志);
for(int x=0;flag==true;x++){
对于(int y=0;y<2;y++){
字符串测试=工作表.getRow(x).getCell(y).toString();
如果(测试!=null){
snId[x][y]=试验;
}
否则{
flag=false;
}
}
}           
}
捕获(例外e){
System.out.printf(“无法打开%s\n错误:%s”,文件路径,e);
}       
}   
}
这是我的输出: 无法打开C:\Users\silbeab1\Documents\seedsActivity12Junv2.xlsx 错误:org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException

以下是完整的堆栈跟踪:

org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:456)
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:271)
    at adina.twitter.ReadFile.main(ReadFile.java:29)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
    ... 4 more
Caused by: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xa6 implies a length of more than 4 bytes
    at org.apache.xmlbeans.impl.piccolo.xml.UTF8XMLDecoder.decode(UTF8XMLDecoder.java:162)
    at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader$FastStreamDecoder.read(XMLStreamReader.java:762)
    at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader.read(XMLStreamReader.java:162)
    at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yy_refill(PiccoloLexer.java:3477)
    at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:3962)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
    at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3479)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1277)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1264)
    at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.SstDocument$Factory.parse(Unknown Source)
    at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:119)
    at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:106)
    ... 9 more
org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException
位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
在org.apache.poi.poimmldocumentpart.read(poimmldocumentpart.java:456)
位于org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
位于org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:271)
位于adina.twitter.ReadFile.main(ReadFile.java:29)
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
…还有4个
原因:java.io.CharConversionException:不支持大于4字节的字符:字节0xa6表示长度超过4字节
位于org.apache.xmlbeans.impl.piccolo.xml.utf8xmldecord.decode(utf8xmldecord.java:162)
位于org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader$FastStreamDecoder.read(XMLStreamReader.java:762)
位于org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader.read(XMLStreamReader.java:162)
位于org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yy_(PiccoloLexer.java:3477)
位于org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:3962)
位于org.apache.xmlbeans.impl.piccolo.xml.piccolo.yylex(piccolo.java:1290)
请访问org.apache.xmlbeans.impl.piccolo.xml.piccolo.yyprase(piccolo.java:1400)
位于org.apache.xmlbeans.impl.piccolo.xml.piccolo.parse(piccolo.java:714)
位于org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3479)
位于org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1277)
位于org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1264)
在org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
位于org.openxmlformats.schemas.spreadsheetml.x2006.main.SstDocument$Factory.parse(未知源)
位于org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:119)
位于org.apache.poi.xssf.model.SharedStringsTable。(SharedStringsTable.java:106)
…还有9个

此异常
java.io.CharConversionException:不支持大于4字节的字符:字节0xa6表示长度超过4字节
(对于apache poi),通常在尝试读取.xlsb格式(不支持)时出现

您确定您的excel是xlsx格式而不是xlsb格式吗

类似例外情况请参见以下链接,但仅限于xlsb格式:


此异常
java.io.CharConversionException:不支持大于4字节的字符:字节0xa6表示长度超过4字节
(对于apache poi),通常在尝试读取.xlsb格式(不支持)时出现

您确定您的excel是xlsx格式而不是xlsb格式吗

类似例外情况请参见以下链接,但仅限于xlsb格式:


这肯定是库的问题。您能在Microsoft excel中打开吗?这似乎是open office例外…是的,我可以在Microsoft excel中打开它,您使用的是哪个POI版本?(我不知道答案,但这有助于更新库或获得答案)。引发异常的确切位置?肯定是库有问题。您可以在Microsoft excel中打开吗?它似乎是打开的office异常…是的,我可以在Microsoft excel中打开它。您使用的POI版本是哪个?(否)
org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:456)
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:271)
    at adina.twitter.ReadFile.main(ReadFile.java:29)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
    ... 4 more
Caused by: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xa6 implies a length of more than 4 bytes
    at org.apache.xmlbeans.impl.piccolo.xml.UTF8XMLDecoder.decode(UTF8XMLDecoder.java:162)
    at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader$FastStreamDecoder.read(XMLStreamReader.java:762)
    at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader.read(XMLStreamReader.java:162)
    at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yy_refill(PiccoloLexer.java:3477)
    at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:3962)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
    at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
    at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3479)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1277)
    at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1264)
    at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.SstDocument$Factory.parse(Unknown Source)
    at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:119)
    at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:106)
    ... 9 more