2013-04-25 5 views
8

जब मैं Excel फ़ाइल (.xls प्रारूप) पढ़ रहा हूँ, मैं एक अपवाद हो रही रखने:java.lang.IllegalArgumentException: आपका InputStream न तो एक OLE2 धारा, और न ही एक OOXML धारा था

java.lang.IllegalArgumentException: Your Input Stream was neither an OLE 2 stream, nor an OOXML stream. 

मैं Go- ogled और पाया कि अगर इनपुट स्ट्रीम रीसेट या मार्क का समर्थन नहीं कर रहा है, तो मुझे इसे pushbackStream के साथ लपेटना चाहिए। मेरी इनपुट स्ट्रीम निशान \ रीसेट समर्थित नहीं है।

तो pushbackStream का उपयोग करना एकमात्र विकल्प है? इसका इस्तेमाल कैसे करें? और इसका क्या उपयोग है?

धन्यवाद

+1

क्या आप वाकई अपनी फ़ाइल एक्सेल .xls फ़ाइल है? और नहीं, एक्सटेंशन के साथ एक .csv या .html फ़ाइल बदल गई है? – Gagravarr

+0

नहीं, इसकी एक्सेल .xls फ़ाइल है। – mee

+0

कृपया अपना एसएससीसीई प्रदान करें। –

उत्तर

4
Your InputStream was neither an OLE2 stream, nor an OOXML stream 
java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream 

मैं तुम्हें वर्कबुक फैक्टरी या किसी अन्य प्रारूप इनपुट फ़ाइल और विभिन्न कार्यपुस्तिका प्रकार का उपयोग कर रहे हैं लगता है। यह त्रुटि आमतौर पर पॉप अप होती है जब यह फ़ाइल प्रकार को पढ़ने में सक्षम नहीं होती है। अपाचे पीओआई फ़ाइल एक्सटेंशन की जांच नहीं करता है। यदि आप इसे टेक्स्ट एडिटर में खोलते हैं, तो आप देखेंगे कि इसके बजाय यह एक अलग प्रारूप में होगा। या आप वर्कबुक फैक्टरी का उपयोग करने से पहले कार्यपुस्तिका प्रकार को एचएसएसएफ या एक्सएसएसएफ में शुरू कर सकते हैं।

सरल समाधान (>फ़ाइल का उपयोग कर सहेजें माइक्रोसॉफ्ट एक्सेल> मेनू से विकल्प के रूप में) Microsoft Excel का उपयोग फ़ाइल को खोलने और एक अन्य फ़ाइल के रूप में बचाने के लिए है।

वर्कबुक फैक्टरी फ़ाइल एक्सटेंशन की जांच नहीं करता है, इसके बजाय यह फ़ाइल MIME प्रकार की जांच करता है। मूल रूप से विभिन्न फ़ाइलों के साथ काम करता है (उदाहरण: तृतीय पक्ष अनुप्रयोगों का उपयोग कर बनाई गई फाइलें, 2003 संस्करण एक्सेल करें), लेकिन अपाचे पीओआई बहुत विशिष्ट है।

PushbackInputStream अन्य इनपुट स्ट्रीम में "पुश बैक" या "अपठित" कार्यक्षमता जोड़ता है। इससे पहले कि आप वर्तमान बाइट की व्याख्या कैसे करें, यह निर्धारित करने से पहले कि आप क्या देख रहे हैं, यह देखने के लिए कुछ बाइट्स को आगे पढ़ने की अनुमति देता है।

यदि आप वर्कबुक फैक्टरी का उपयोग नहीं कर रहे हैं, तो PushbackInputStream एकमात्र विकल्प है जो मुझे लगता है।

यदि आप यहां कोड साझा कर सकते हैं तो मैं इसका परीक्षण कर सकता हूं और इसकी पुष्टि कर सकता हूं।

+0

आपका सुझाव मेरी मदद नहीं करता है :( –

+0

यदि आप मुझे विस्तार से त्रुटि के बारे में बता सकते हैं तो मैं आपकी मदद कर सकता हूं। –

+0

धन्यवाद आप, लेकिन मुझे समस्या याद नहीं है। मैंने इसे हल कर लिया है! :) –

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