سؤال

لقد حاولت استخدام JXL و Apache POI لتحميل البيانات من ملف Excel، حتى الآن كانت آلية JXL تعمل بشكل جيد. حتى لو قمت بتضمين صور في الملف.

تلقيت ملف من مصدر لن يتراجع، أحصل على الاستثناء التالي مع POI

Exception in thread "main" org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0xE2 left 2 bytes remaining still to be read.
     at org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:124)
     at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:402)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:277)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:202)
     at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:184)
     at testXlsParsers.main(TestXlsParsers.java:19)

ومع JXL أحصل على مؤشر خارج الحدود

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
     at java.util.ArrayList.RangeCheck(ArrayList.java:546)
     at java.util.ArrayList.get(ArrayList.java:321)
     at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:247)
     at ParserXLS.parse(ParserXLS.java:27)
     at ParserXLS.main(ParserXLS.java:46)

يتم تحميل الملف في Excel ولكن ليس في مكتب مفتوح والشيء الوحيد الذي يمكنني رؤيته في البيانات الأولية هو كائن Adobe XMP Core 4.1 المتعلق ... يبدو أنه سبب المشكلة، إذا قمت بإزالة الصورة التي تعمل بشكل جيد ... إذا كنت عصا آخر JPG في غرامة.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18        ">

هل هناك طريقة لتجاهل هذا؟ كيف أذهب حول تحليل هذا الملف.

شكرا.

هل كانت مفيدة؟

المحلول

شيء واحد للمحاولة هو استخدام إصدار أحدث من Apache Poi - Bugs مثل هذا يتم إصلاحه بمرور الوقت.

إذا لم يساعد الإصدار الأخير من POI (3.8 بيتا 2 ككتابة)، فيجب عليك فتح خطأ جديد في POI Bugzilla، وتحميل ملف المشكلة. الاستثناء الذي تراه هو سبب POI الاعتقاد بأن يجب أن يكون هناك قدر معين من البيانات، وإيجاد المزيد. مع الملف، سيكون من الممكن تحديد سبب وجود هذه البيانات هناك، وتتعمل حولها. (أي، على افتراض أنه لم يتم إصلاحه بالفعل!)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top