简体   繁体   中英

Microsoft.Office.Interop.Excel.ApplicationClass has no constructor defined

I tried to follow How to open an Excel file in C# tutorial, ie added a reference on the Com tab to Microsoft Office 14.0 Object Library and tried to compile code:

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

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

and faced a compile-time error, saying

There is no constructor defined for Microsoft.Office.Interop.Excel.ApplicationClass type.

What am I missing?

尝试这个:

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

Use the following to open it:

xlApp = CreateObject("Excel.Application");

CreateObject creates and returns a reference to a COM object. Documentation may be found here:

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

If you're using C# 4.0 (.NET 4) you can go with much easier syntax

var app = new Application( );

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

In regards to var : it makes you job easier cuz C# decides which type to chose and go for. If interested you can read about dynamic and var styles .

Remember that interop prior to C# 4.0 is totally a different phenomenon and how C# used to handle Microsoft objects.

just so you know how different, this is how you should've coded it before C# 4.0 to talk to a Word document.

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM