/ / Oledb या ODBC Office स्थापित किए बिना कार्यपुस्तिका या वर्कशीट बनाएं

ओलेडबी या ओडीबीसी कार्यालय के बिना वर्कबुक या वर्कशीट बनाएं - vb.net, एक्सेल, ओडीबीसी, ओलेडबी, ओल्डबोननेक्शन

मेरे पास SQL ​​और IIS के साथ 2008R2 सर्वर है; कोई एमएस-ऑफिस सूट स्थापित नहीं है, हालांकि मुझे उपयोगकर्ता के अनुरोधों के आधार पर गतिशील रूप से निर्मित एक्सेल उत्तर भेजने की आवश्यकता है।

"Microsoft Access डेटाबेस इंजन 2010 Redistributable" स्थापित किया गया है, चश्मा के अनुसार, एक्सेल ड्राइवर (अन्य के बीच) जगह में होना चाहिए।

निम्नलिखित कनेक्शन स्ट्रिंग के साथ एक नया डेटाबेस बनाने की कोशिश कर रहा है:

    Using ExcelConnection As New System.Data.OleDb.OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + Name + ";" +
"Mode=ReadWrite;" +
"ReadOnly=false;" +
"Extended Properties=Excel 12.0;")
ExcelConnection.Open()
....
end Using

त्रुटि

  [OleDbException (0x80004005): Could not find installable ISAM.]
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +318
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +88
System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +24
....

निकाला जा रहा है Mode=ReadWrite;ReadOnly=false; एक अलग त्रुटि के साथ विफल:

OleDbException (0x80004005): Cannot update.  Database or object is read-only.]
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +318
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions .....

आउटपुट निर्देशिका सुरक्षा प्रतिबंधों के बिना बनाने की अनुमति देती है।

यदि मेरे पास "टेम्पलेट" है, तो मैं इसे कॉपी कर सकता हूं और इसके साथ काम कर सकता हूं। इसलिए: सृजन की अनुमति नहीं है लेकिन पढ़ना / लिखना है।

कृपया सीएसवी, थर्ड पार्टी सॉफ्टवेयर या एक या अधिक वर्कशीट वाली एक्सेल वर्कबुक के अलावा कुछ भी इस्तेमाल करने की सलाह न दें।

क्षमा करें मेरी भाषा: मैं "C # में धाराप्रवाह हूं, लेकिन VB में लिखना पसंद करता हूं ...

उत्तर:

जवाब के लिए 0 № 1

यदि आप एक रिक्त नई एक्सेल फ़ाइल बनाना चाहते हैं, तो आपको अपने विस्तारित गुणों में "एक्सेल 12.0 एक्सएमएल" निर्दिष्ट करने की आवश्यकता है, उदा।

Using ExcelConnection As New System.Data.OleDb.OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + Name + ";" +
"Extended Properties=Excel 12.0 XML;")
ExcelConnection.Open()
End Using

इसके अलावा, कृपया ध्यान दें कि एक्सेल फाइल तब तक पूरी नहीं होगी जब तक आप कम से कम एक शीट नहीं जोड़ते ...

Using ExcelCommand As New System.Data.OleDb.OleDbCommand("Create Table [Sheet1] (Column1 Int)", ExcelConnection)
ExcelCommand.ExecuteNonQuery()
End Using

हालाँकि, किसी मौजूदा को पढ़ने के बाद, संभवतः आपके द्वारा "कहीं और से टेम्पलेट कॉपी करने के बाद आपको विभिन्न विस्तारित गुणों का उपयोग करने की आवश्यकता होगी ...

Using ExcelConnection As New System.Data.OleDb.OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + Name + ";" +
"Extended Properties=""Excel 12.0;HDR=No;IMEX=1"""
ExcelConnection.Open()
End Using

आपके पास हेडर हो सकते हैं जिस स्थिति में एचडीआर = हां निर्दिष्ट करें व्यक्तिगत रूप से मैं नहीं करना पसंद करता हूं।