本文介绍了同时开放使用Apache POI .xlsx文件时发生异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在做Android应用程序中,我要打开的.xls和.xlsx文件的进一步落实。如果.xls的一切工作正常,但是当我尝试打开的.xls X文件里它给了我的异常。下面是我的code请帮我解决这些异常
@覆盖
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,因此code,数据);
如果(要求code == RESULT_ code和;&安培;结果code == RESULT_OK和放大器;&安培;!空=数据){
字符串文件名= data.getData()getLastPathSegment()。
字符串的文件路径= data.getData()getPath()。
如果(FilePath.endsWith(。XLSX)){
尝试{
的FileInputStream文件=新的FileInputStream(新File(文件路径));
XSSFWorkbook myWorkBook2 =新XSSFWorkbook(文件);
XSSFSheet mySheet2 = myWorkBook2.getSheetAt(0);}
赶上(FileNotFoundException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}赶上(IOException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
}
罐子用它的IAM:
- 的dom4j-1.6.1.jar
- 的log4j-1.2.13.jar
- 在POI-3.9-20121203.jar
- 在POI-OOXML-3.9-20121203.jar
- XMLBeans的-2.3.0.jar
logcat的错误
07-05 14:09:31.654:E / AndroidRuntime(6774):致命异常:主要
07-05 14:09:31.654:E / AndroidRuntime(6774):java.lang.RuntimeException的:不提供结果ResultInfo {谁= NULL,请求= 1,结果= -1,数据= {意图行事= android.intent。 action.GET_CONTENT猫= [android.intent.category.OPENABLE] DAT =文件:/// SD卡/测试的.xlsx FLG = 0x3000000 CMP = miyowa.android.microsoft.wlm / com.miyowa.android.framework.ui.miyowaExplorer .MiyowaExplorer(有群众演员)}}到活动{com.example.converter / com.example.converter.Homepage}:org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread.deliverResults(ActivityThread.java:3142)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread.handleSendResult(ActivityThread.java:3185)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread.access $ 1100(ActivityThread.java:134)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1281)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.os.Handler.dispatchMessage(Handler.java:99)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.os.Looper.loop(Looper.java:137)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread.main(ActivityThread.java:4666)
07-05 14:09:31.654:E / AndroidRuntime(6774):在java.lang.reflect.Method.invokeNative(本机方法)
07-05 14:09:31.654:E / AndroidRuntime(6774):在java.lang.reflect.Method.invoke(Method.java:511)
07-05 14:09:31.654:E / AndroidRuntime(6774):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:809)
07-05 14:09:31.654:E / AndroidRuntime(6774):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
07-05 14:09:31.654:E / AndroidRuntime(6774):在dalvik.system.NativeStart.main(本机方法)
07-05 14:09:31.654:E / AndroidRuntime(6774):org.apache.poi.POIXMLException:产生的原因java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.xssf.usermodel.XSSFWorkbook< INIT>(XSSFWorkbook.java:207)
07-05 14:09:31.654:E / AndroidRuntime(6774):在com.example.converter.Homepage.onActivityResult(Homepage.java:358)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.Activity.dispatchActivityResult(Activity.java:4694)
07-05 14:09:31.654:E / AndroidRuntime(6774):在android.app.ActivityThread.deliverResults(ActivityThread.java:3138)
07-05 14:09:31.654:E / AndroidRuntime(6774):11 ...更多
07-05 14:09:31.654:E / AndroidRuntime(6774):由:java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E / AndroidRuntime(6774):在java.lang.reflect.Constructor.constructNative(本机方法)
07-05 14:09:31.654:E / AndroidRuntime(6774):在java.lang.reflect.Constructor.newInstance(Constructor.java:417)
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
07-05 14:09:31.654:E / AndroidRuntime(6774):17 ...更多
07-05 14:09:31.654:E / AndroidRuntime(6774):由:java.lang.NoClassDefFoundError的:org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument $厂
07-05 14:09:31.654:E / AndroidRuntime(6774):在org.apache.poi.xssf.model.ThemesTable< INIT>(ThemesTable.java:44)
07-05 14:09:31.654:E / AndroidRuntime(6774):20 ...更多
解决方案
JS preadsheet 是Java和Android另一个API。它读取并创建.xlsx文件。有没有相关性,只有一个jar文件。
I have been working on an android application in which i have to open .xls and .xlsx file for further implementation. In case of .xls everything is working fine but when i try to open .xls x file it gives me exception. below is my codePlease help me solving these exception
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_code && resultCode == RESULT_OK && null != data) {
String FileName = data.getData().getLastPathSegment();
String FilePath = data.getData().getPath();
if(FilePath.endsWith(".xlsx")){
try{
FileInputStream file = new FileInputStream(new File(FilePath));
XSSFWorkbook myWorkBook2 = new XSSFWorkbook(file);
XSSFSheet mySheet2 = myWorkBook2.getSheetAt(0);}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
jars which iam using:
- dom4j-1.6.1.jar
- log4j-1.2.13.jar
- poi-3.9-20121203.jar
- poi-ooxml-3.9-20121203.jar
- xmlbeans-2.3.0.jar
Logcat error
07-05 14:09:31.654: E/AndroidRuntime(6774): FATAL EXCEPTION: main
07-05 14:09:31.654: E/AndroidRuntime(6774): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] dat=file:///sdcard/test .xlsx flg=0x3000000 cmp=miyowa.android.microsoft.wlm/com.miyowa.android.framework.ui.miyowaExplorer.MiyowaExplorer (has extras) }} to activity {com.example.converter/com.example.converter.Homepage}: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread.deliverResults(ActivityThread.java:3142)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3185)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread.access$1100(ActivityThread.java:134)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.os.Looper.loop(Looper.java:137)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread.main(ActivityThread.java:4666)
07-05 14:09:31.654: E/AndroidRuntime(6774): at java.lang.reflect.Method.invokeNative(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774): at java.lang.reflect.Method.invoke(Method.java:511)
07-05 14:09:31.654: E/AndroidRuntime(6774): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
07-05 14:09:31.654: E/AndroidRuntime(6774): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
07-05 14:09:31.654: E/AndroidRuntime(6774): at dalvik.system.NativeStart.main(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:207)
07-05 14:09:31.654: E/AndroidRuntime(6774): at com.example.converter.Homepage.onActivityResult(Homepage.java:358)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.Activity.dispatchActivityResult(Activity.java:4694)
07-05 14:09:31.654: E/AndroidRuntime(6774): at android.app.ActivityThread.deliverResults(ActivityThread.java:3138)
07-05 14:09:31.654: E/AndroidRuntime(6774): ... 11 more
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774): at java.lang.reflect.Constructor.constructNative(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
07-05 14:09:31.654: E/AndroidRuntime(6774): ... 17 more
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: java.lang.NoClassDefFoundError: org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory
07-05 14:09:31.654: E/AndroidRuntime(6774): at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:44)
07-05 14:09:31.654: E/AndroidRuntime(6774): ... 20 more
解决方案
JSpreadsheet is another API for Java and Android. It reads and creates .xlsx file. There are no dependencies, only one jar file.
这篇关于同时开放使用Apache POI .xlsx文件时发生异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!