2012-12-24 17 views
21

परिभाषित है मैं, How to open an Excel file in C# ट्यूटोरियल का पालन करने की कोशिश की यानी Microsoft Office 14.0 Object Library को Com टैब पर एक संदर्भ जोड़ा गया है और कोड को संकलित करने की कोशिश की:Microsoft.Office.Interop.Excel.ApplicationClass कोई निर्माता

using Excel = Microsoft.Office.Interop.Excel; 
//... 
Excel.Application xlApp; 
Excel.Workbook xlWorkBook; 
Excel.Worksheet xlWorkSheet; 

xlApp = new Excel.ApplicationClass();//error here 
//... 

और एक संकलन का सामना करना पड़ा टाइम त्रुटि,

कह कोई निर्माता Microsoft.Office.Interop.Excel.ApplicationClass प्रकार के लिए परिभाषित किया गया है।

मुझे क्या याद आ रही है?

उत्तर

38

इस प्रयास करें:

Excel._Application xlApp = new Excel.Application(); 
+0

यही है। बहुत बहुत धन्यवाद – horgh

+0

खैर, कार्यालय 14 + वीएस 2010 .NET 3.5 और एप्लिकेशन क्लास के साथ काम किया। अब वीएस 2012 के साथ, कार्यालय 14 केवल .NET 4 का उपयोग करके पहचाना जाता है और मुझे वही त्रुटि मिलती है जो आप कर रहे थे। – Pedro77

3

इसे खोलने के लिए निम्नलिखित का उपयोग करें:

xlApp = CreateObject("Excel.Application"); 

CreateObject बनाता है और एक COM ऑब्जेक्ट के संदर्भ देता है। प्रलेखन यहां पाया जा सकता है:

http://msdn.microsoft.com/en-us/library/7t9k08y5%28v=vs.71%29.aspx

+0

'CreateObject' क्या है? – horgh

+0

बस प्रलेखन के लिए एक संदर्भ जोड़ा गया। मैंने आपके द्वारा किए गए किसी भी तरीके की तरह एक विधि की कोशिश नहीं की है, इसलिए यह सुनिश्चित न करें कि यह काम करता है या नहीं, लेकिन मैंने अभी हाल ही में एक वीबी.नेट परियोजना की जांच की है जो मैंने लिखा है और यह है कि मैं इसके बारे में कैसे गया। – PeterJ

+0

+1: Vlad Spreys ने मुझे आवश्यक उत्तर दिया। फिर भी धन्यवाद। – horgh

3

आप सी # 4.0 का उपयोग कर रहे हैं (.NET 4) आप वर के संबंध में बहुत आसान वाक्य रचना

var app = new Application(); 

var workbook = app.Workbooks.Open("test.xls"); 

साथ जा सकते हैं: यह आपको नौकरी आसान बनाता है cuz सी # तय करता है कि किस प्रकार का चयन करना और जाना है। यदि आप रुचि रखते हैं तो गतिशील और varशैलियों पढ़ सकते हैं।

याद रखें कि सी # 4.0 से पहले इंटरऑप पूरी तरह से एक अलग घटना है और कैसे सी # माइक्रोसॉफ्ट ऑब्जेक्ट्स को संभालने के लिए उपयोग किया जाता है।

बस इतना ही पता है कि यह कितना अलग है, इस प्रकार आपको शब्द दस्तावेज़ से बात करने के लिए सी # 4.0 से पहले कोड करना चाहिए था।

object fileName = @"WordFile.docx"; 
object missing = System.Reflection.Missing.Value; 
object readOnly = true; 
var doc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, 
ref missing, ref missing, ref missing, ref missing, ref missing, 
ref missing, ref missing, ref missing); 
+1

अच्छी तरह से वर्णन किया गया है कि ** आवेदन() ** के बजाय ** आवेदन() ** का उपयोग क्यों करें [लिंक] (http: //blogs.msdn। कॉम/बी/ptorr/संग्रह/2004/02/05/67872.aspx) – Mehrad

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