2010-08-20 8 views
10

नहीं मिला, मैं 64 बिट प्रक्रिया के साथ एक्सेल स्प्रेडशीट पढ़ने की कोशिश कर रहा हूं। इसलिए मैं Micorosft Access Database Engine 2010 के 64 बिट संस्करण का उपयोग करता हूं।माइक्रोसॉफ्ट एसीई ओएलईडीबी प्रदाता फेंक इंस्टॉल करने योग्य आईएसएएम अपवाद

निम्नलिखित कोड

var cs = @"Provider=Microsoft.ACE.OLEDB.12.0;" 
     + @"Data Source=C:\test.xls;" 
     + @"Extended Properties=""Excel 14.0;"""); 

con = new OleDbConnection(cs); 
con.Open(); 

एक अपवाद फेंक:

स्थापना योग्य ISAM

नहीं मिल सका गूगल का उपयोग करते हुए मैं इस अपवाद के बारे में सवाल का एक बहुत मिल गया। लेकिन वे जेट को संदर्भित करते हैं और मेरी समस्या पर लागू नहीं होते हैं।

कोई सिफारिशें?

+1

क्या आपको कभी इसका समाधान मिला? मुझे एक ही समस्या है। – PICyourBrain

+0

मुझे अभी तक कोई समाधान नहीं मिला है। –

+0

OPENROWSET से चुनें * 'MSDASQL', \t 'ड्राइवर = माइक्रोसॉफ्ट एक्सेल ड्राइवर (* .xls, * .xlsx, * .xlsm, * .xlsb); डीबीक्यू = डी: \ नमूनाऑफिस2007.xlsx', 'चुनें * से चुनें [ड्राइवर $] ') –

उत्तर

1

आज मैं एक ही समस्या में आया था। मेरी कॉन्फ़िगरेशन है:

  • x64 .NET 2.0 डेस्कटॉप एप्लिकेशन जो XLSX फ़ाइल पढ़ता है। , के रूप में documentation घटक से पढ़ता है, माइक्रोसॉफ्ट एक्सेस डेटाबेस इंजन की
  • x64 संस्करण 2010 पुनर्वितरण
  • मेरे कनेक्शन स्ट्रिंग विस्तारित गुण शामिल मूल्य "एक्सेल 14.0" के साथ विशेषता। स्थापना योग्य ISAM अपवाद नहीं मिल सका:

मैं बिल्कुल वैसा ही समस्या आपके पास था। मैंने this article पर आने के बाद इसे हल किया, जिसमें कहा गया है कि एमएस साइट के घटक के दस्तावेज पर एक बग है। मुझे यकीन नहीं है कि घटक का दस्तावेज गलत है, मैं क्या कह सकता हूं कि बदल रहा है विस्तारित गुण से एक्सेल 12.0 एक्सएमएल समस्या हल हो गई।

1

मुझे Excel 2007 .xlsx फ़ाइल से डेटा प्राप्त करने का प्रयास करने में बिल्कुल वही समस्या हो रही थी।

सामान्य रूप से विश्वसनीय "Microsoft.ACE.OLEDB.12.0" ड्राइवरों बस कनेक्ट करने के लिए मना कर दिया, फेंक एक ही गलती है जो आप देख रहे थे "स्थापना योग्य ISAM नहीं खोजा जा सका"।

SELECT * FROM OPENROWSET('MSDASQL', 
    'DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb); 
    DBQ=D:\Sample.xlsx', 'SELECT * FROM [Sheet1$]') 

आशा इस मदद करता है:

आखिरकार, मैं इस कोड है, जो काम किया मिल गया!

(इस सूत्र में अंतिम पोस्टिंग से अनुकूलित: SQLTeam.com)

एक छोटी सी देर बाद ...

अब, अचानक, मेरे मूल कनेक्शन स्ट्रिंग काम कर रहा है। यह पहले विफल रहा था (इससे पहले कि मैं ऊपर से MSDASQL स्ट्रिंग का उपयोग कर सफलतापूर्वक कनेक्ट किया गया था) लेकिन अब सफलतापूर्वक काम करता है।

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=D:\Sample.xlsx;HDR=NO;IMEX=1', 
    'SELECT * FROM [Sheet1$]') 

विषम, बहुत विषम।

1

मेरी कनेक्शन स्ट्रिंग में उद्धरण चिह्न जोड़ने के बाद, आईएसएएम त्रुटि गायब हो गई (नीचे कोड)।

string GetConnectionString(string fileName) 
{ 
    return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;HDR=YES;\""; 
} 
1

मुझे एक्सेल और टूल्स के साथ 2013 कार्यालय स्थापित करने और पूर्व संस्करणों को बरकरार रखने के लिए मिला। फिर एक कस्टम इंस्टॉल कर रहे हैं ... फिर एक बार 2013 एक्सेल खोलें और फिर इसे बंद करें। फिर गोटो कंट्रोल पैनल और 2013 से एक्सेल को हटाने वाली सुविधाओं को हटाएं। फिर 2010 एक्सेल खोलें और इसे अपने आप को त्वरित रीफ्रेश इंस्टॉल करने दें और फिर यह बिना त्रुटि के काम करता है।

0

"This Article" का लिंक सही है, हालांकि सिंगल कोट्स को डबल कोट्स में बदलें। मैं किसी भी एक्सेल फ़ाइल प्राप्त करने के लिए एक OpenFileDialog का उपयोग कर रहा हूँ। < =
// नया संस्करण, किसी भी xls फ़ाइल "प्रदाता = Microsoft.ACE.OLEDB.12.0 पोस्ट में (मैं Excel 2013 का उपयोग कर रहा परीक्षण के लिए)

=> मूल स्वरूप, डेटा स्रोत = 'सी : \ AlmostAnyExcelVersionFileRunningUnder64BitOS.xls '; विस्तारित गुण =' एक्सेल 12.0; एचडीआर = नहीं; IMEX = 1; '; "

=> सही स्वरूप < =
XLConnection = "प्रदाता = Microsoft.ACE.OLEDB.12.0; डेटा स्रोत =" & Chr (34) & ExceilFileDialog.FileName & Chr (34) & ", विस्तारित गुण =" & Chr (34) & "एक्सेल 12.0; एचडीआर = नहीं; IMEX = 1;" & Chr (34) & ";"

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