2009-03-13 9 views
8

मुझे किसी XML से डेटा खींचने की आवश्यकता है, मुझे यह भी आवश्यक है कि उपयोगकर्ता उस फ़ाइल के स्थान को बदलने में सक्षम हो। तो एक OleDbConnection एक अच्छी शुरुआत की तरह लग रहा था, और यह पहली विलय सेल तक था।सी # के साथ एक एक्सेल 2003 स्प्रेडशीट खोलें। इंस्टॉल करने योग्य ISAM नहीं मिला। अपवाद

यह सभी के लिए काम करता है लेकिन मर्ज किए गए कक्षों:

OleDbCommand cmd = new OleDbCommand(); 
cmd.Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
Source=F:\test.xls;Extended Properties=Excel 8.0;"); 
cmd.CommandText = "SELECT * FROM [Sheet$]"; 
cmd.Connection.Open(); 

मैंने पाया कि इस मर्ज कक्षों के लिए उपयोग की अनुमति चाहिए:

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;"); 

लेकिन तब मैं एक स्थापना योग्य ISAM अपवाद नहीं मिल सका मिल cmd.conn.open() पर;

मैं यहाँ सलाह का पालन: http://support.microsoft.com/kb/209805

और यहाँ: Error: "Could Not Find Installable ISAM"

कोई भाग्य।

मैं xls से डेटा खींचने के अन्य तरीकों के लिए खुला हूं। या यहां तक ​​कि यदि कोई आदेश था तो मैं काम कर सकता है कि दर्पण कोशिकाओं को हटाने के लिए xls पर चला सकता है।

उत्तर

15

मुझे लगता है कि यह सिर्फ है अगर आप एक से अधिक

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls; 
Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"); 

है या क्योंकि आप उद्धरण में विस्तारित गुण संलग्न करने के लिए है, तो एकल उद्धरण काम नहीं करते (आप अंदाजा हो)

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls; 
Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"";"); 

जबकि आपका उदाहरण यह नहीं दिखाता है, यह त्रुटि फ़ाइल पथ में रिक्त स्थान के कारण भी हो सकती है। इस मामले में आपको उद्धरण में फ़ाइल पथ को लपेटने की आवश्यकता होगी।

OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""F:\test.xls"";... 
+0

इस भयानक वाक्यविन्यास के बारे में किसने सोचा? – configurator

+0

मुझे इसे थोड़ा बदलना पड़ा: ओलेडीबीकनेक्शन (@ "प्रदाता = माइक्रोसॉफ्ट.जेट.ओएलडीबी 4.0; डेटा स्रोत = एफ: \ test.xls; विस्तारित गुण = 'एक्सेल 8।0; एचडीआर = नहीं; IMEX = 1 '"); – NitroxDM

+0

इस उत्तर के लिए बहुत बहुत धन्यवाद। –

2

मान लिया जाये कि आपका सिस्टम आवश्यकताएं Excel के एक अधिष्ठापन में शामिल हैं, आप

भी देखें VSTO

-1

एक रॉयल्टी मुक्त स्प्रेडशीट है एक्सेल वस्तु लाइब्रेरी

Excel.Sheets sheets = m_Excel.Worksheets; 
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1); 
Excel.Range range = worksheet.get_Range("A1", "E1".ToString()); 

आदि का उपयोग कर सकते .NET के लिए घटक और 32 बिट और 64 बिट .NET के लिए जो कुछ भी आप चाहते हैं उसे Excel पर निर्भरता के साथ करना चाहिए (या अन्यथा कुछ भी एक .NET 2.0+)।

आप लाइव एएसपी.NET नमूने here देख सकते हैं और नि: शुल्क परीक्षण here डाउनलोड कर सकते हैं यदि आप इसे स्वयं करना चाहते हैं।

अस्वीकरण: मैं खुद SpreadsheetGear LLC

1

इस

मैं इस समस्या थी की कोशिश करो। उद्धरणों के कारण

string sConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFilePath + ";" + "Extended Properties='Excel 8.0;HDR=YES;'"; 
संबंधित मुद्दे