] हालाँकि, इन नामों को प्राप्त करने के क्रम में वे स्प्रेडशीट में परिभाषित किए गए हैं, जब OLEDB का उपयोग करते समय चुनौतीपूर्ण हो सकता है। Getoledbschematable () वांछित क्रम में शीट नाम प्रदान करने में विफल रहता है। यह शीट नाम या सूचकांक के आधार पर डेटा पुनर्प्राप्ति को निर्दिष्ट करने के लिए उपयोगकर्ता की क्षमता में बाधा डालता है, जिससे भ्रम की स्थिति होती है। शीट 0 से शीट्स माइनस 1 की संख्या तक। यह शीट ऑर्डर के संरक्षण को सुनिश्चित करता है।
का उपयोग करना यदि कार्यालय का उपयोग करना अंतर नहीं है, तो OLEDB का उपयोग करने वाला एक समाधान उपलब्ध है:
/// /// एक्सेल वर्कबुक से एक्सेल शीट के नामों को पुनः प्राप्त करता है। /// सारांश> /// Excel फ़ाइल। /// स्ट्रिंग [] रिटर्न> निजी स्ट्रिंग [] getExcelsheetNames (स्ट्रिंग एक्सेल्फाइल) { Oledbconnection objconn = null; System.data.datatable dt = null; कोशिश { // कनेक्शन स्ट्रिंग स्ट्रिंग कॉनस्ट्रिंग = "प्रदाता = microsoft.jet.oledb.4.0;" "डेटा स्रोत =" एक्सेलफाइल "; विस्तारित गुण = एक्सेल 8.0;"; // कनेक्शन बनाएं और डेटाबेस के लिए कनेक्शन खोलें objconn = नया OledBconnection (Connstring); objconn.open (); // स्कीमा गाइड युक्त डेटा तालिका प्राप्त करें dt = objconn.getoledbschematable (oledbschemaguid.tables, null); if (dt == null) वापसी नल; // शीट नामों को संग्रहीत करने के लिए स्ट्रिंग [] इनिशियलाइज़ करें। स्ट्रिंग [] excelsheets = नया स्ट्रिंग [dt.rows.count]; int i = 0; // स्ट्रिंग सरणी में शीट नाम जोड़ें। foreach (datarow पंक्ति dt.rows) { excelsheets [i] = row ["table_name"]। tostring (); मैं ; } Excelsheets लौटें; } कैच (अपवाद पूर्व) { वापसी नल; } अंत में { // कनेक्शन और डेटा तालिका को साफ करें if (objconn! = null) { objconn.close (); objconn.dispose (); } if (dt! = null) { dt.dispose (); } } …
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3