Apache POI XLSX Cra sh при чтении файла со строками больше 40-50 и выдает исключение - PullRequest
0 голосов
/ 05 мая 2020

Apache POI XLSX Cra sh при чтении файла со строками более 40-50 и выдает исключение

Re: ERROR: org. apache .poi.POIXMLException: java. lang.reflect.InvocationTargetException ... Ниже приведена полная трассировка стека.

Возможно, это из-за пустых столбцов / строк?

Не работает файл

Рабочий файл

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.bankbros.lda, PID: 24707
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:426)
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:431)
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:221)
    at com.bankbros.lda.UploadDataFragment.doUploadFinal(UploadDataFragment.java:218)
    at com.bankbros.lda.UploadDataFragment.doUploadData(UploadDataFragment.java:131)
    at com.bankbros.lda.UploadDataFragment$5.onClick(UploadDataFragment.java:384)
    at android.view.View.performClick(View.java:7140)
    at android.view.View.performClickInternal(View.java:7117)
    at android.view.View.access$3500(View.java:801)
    at android.view.View$PerformClick.run(View.java:27355)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7403)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:426) 
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:431) 
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155) 
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:221) 
    at com.bankbros.lda.UploadDataFragment.doUploadFinal(UploadDataFragment.java:218) 
    at com.bankbros.lda.UploadDataFragment.doUploadData(UploadDataFragment.java:131) 
    at com.bankbros.lda.UploadDataFragment$5.onClick(UploadDataFragment.java:384) 
    at android.view.View.performClick(View.java:7140) 
    at android.view.View.performClickInternal(View.java:7117) 
    at android.view.View.access$3500(View.java:801) 
    at android.view.View$PerformClick.run(View.java:27355) 
    at android.os.Handler.handleCallback(Handler.java:883) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:214) 
    at android.app.ActivityThread.main(ActivityThread.java:7403) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935) 
 Caused by: java.lang.ClassCastException: org.apache.xmlbeans.impl.values.XmlComplexContentImpl cannot be cast to org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing
    at org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing$Factory.parse(Unknown Source:10)
    at org.apache.poi.xssf.usermodel.XSSFDrawing.<init>(XSSFDrawing.java:84)
    at java.lang.reflect.Constructor.newInstance0(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343) 
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60) 
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:426) 
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:431) 
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155) 
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:221) 
    at com.bankbros.lda.UploadDataFragment.doUploadFinal(UploadDataFragment.java:218) 
    at com.bankbros.lda.UploadDataFragment.doUploadData(UploadDataFragment.java:131) 
    at com.bankbros.lda.UploadDataFragment$5.onClick(UploadDataFragment.java:384) 
    at android.view.View.performClick(View.java:7140) 
    at android.view.View.performClickInternal(View.java:7117) 
    at android.view.View.access$3500(View.java:801) 
    at android.view.View$PerformClick.run(View.java:27355) 
    at android.os.Handler.handleCallback(Handler.java:883) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:214) 
    at android.app.ActivityThread.main(ActivityThread.java:7403) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935) 

Работа с .xlsx файлами

fis = new FileInputStream(excelFile);
XSSFWorkbook workbook = new XSSFWorkbook(fis);        
XSSFSheet sheet = workbook.getSheetAt(0);
...