2011-03-25 10 views
12

मेरे पास पुराने प्रारूप (97-2003) में एक्सेल शीट से पढ़ने के लिए एक कोड है। मैंने डेटा में कुछ बदलाव किए और 2007 प्रारूप एक्सेल शीट समाप्त कर दी। जब मैं xls चादर के बजाय इस xlsx चादर का इस्तेमाल किया, मैं इस हो रही है:एक्सेल शीट पढ़ने के दौरान बिफएक्सप्शन

jxl.read.biff.BiffException: Unable to recognize OLE stream 
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116) 
    at jxl.read.biff.File.<init>(File.java:127) 
    at jxl.Workbook.getWorkbook(Workbook.java:268) 
    at readexcel.ReadExcel.readContent(ReadExcel.java:50) 
    at readexcel.ReadExcel.init(ReadExcel.java:25) 
    at readexcel.ReadExcel.main(ReadExcel.java:183) 
+1

ऐसा लगता है कि जेएक्सएल अभी भी पुरानी एक्सएलएसएक्स फ़ाइल का उपयोग करने और पढ़ने के लिए पुरानी एक्सएलएस रीडर का उपयोग कर रहा है - एमएस एक्सेल के भीतर से केवल "सेव एज़" क्यों नहीं, इसे पुराने 97-2003 प्रारूप –

उत्तर

17

xls प्रारूप (< Excel 2007) एक OLE कंटेनर में द्विआधारी बीआईएफएफ डेटा के शामिल है। Xlsx प्रारूप (> = एक्सेल 2007) एक ज़िप कंटेनर में एक्सएमएल फाइलों में शामिल है।

जावा एक्सेल एपीआई केवल पहले प्रारूप से संबंधित है, इसलिए जब यह ओएलई कंटेनर का सामना नहीं करता है तो यह अपवाद फेंकता है।

आपको केवल अपने इनपुट को xls फ़ाइलों तक सीमित करना होगा या दोनों प्रारूपों को संभालने वाला एक अन्य टूल ढूंढना होगा।

+0

में सहेजने के लिए ... अच्छा ... काफी अंतर्दृष्टिपूर्ण था .... क्या आप मुझे किसी भी एपीआई के बारे में एक विचार दे सकते हैं जो प्रारूप – nowfal

+1

दोनों को संभालता है अपाचे पीओआई जावा में दोनों फाइल प्रकारों को संभालता है: http://poi.apache.org/spreadsheet/index.html – jmcnamara

4

"एक्सेल 97-2003 कार्यपुस्तिका" (विकल्प माइक्रोसॉफ्ट एक्सेल 2007 में आता है) के रूप में "अपनी कार्यपुस्तिका के रूप में सहेजें" यह आपकी फ़ाइल को ओएलई कंटेनर में सहेजता है।

3

मुझे बस एक ही समस्या है। परियोजना मैवेन आधारित थी और निम्नलिखित निर्देश का साइड इफेक्ट एक्सएलएस फाइल को फ़िल्टर करना था। जबकि सहित, लेकिन अन्य उप फ़ोल्डरों पर छानने नहीं

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
</resources> 

स्वच्छ वैकल्पिक हल समाधान, उप फ़ोल्डर "config" को परिभाषित करने और इस विशिष्ट फ़ोल्डर पर फ़िल्टरिंग अनुमति देने के लिए किया गया था।

+1

मेरे पास था एक ही समस्या है। मैं कुछ एक्सेल कार्यपुस्तिकाओं के साथ सोपूआई शुरू करने के लिए मेवेन का उपयोग कर रहा हूं। और जब आप उन एक्सेल फ़ाइलों को मैवेन के साथ फ़िल्टर करते हैं, तो यह उन्हें आंतरिक रूप से अनुपयोगी बना देता है। तो समाधान उन्हें फ़िल्टर नहीं करना है। – CHiRo79

0

मुझे ग्रहण/सेलेनियम में एक ही समस्या का सामना करना पड़ा और 97-2000 (.xls) के रूप में "सहेजें" की कोशिश की और यह मेरी समस्या हल हो गई।

संबंधित मुद्दे