Подтвердить что ты не робот

Microsoft.Office.Interop.Excel.ApplicationClass не имеет определенного конструктора

Я попытался следовать Как открыть файл Excel в С#, то есть добавил ссылку на вкладку Com на Microsoft Office 14.0 Object Library и попытался скомпилировать код

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.

Что мне не хватает?

4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

Для его открытия используйте следующее:

xlApp = CreateObject("Excel.Application");

CreateObject создает и возвращает ссылку на COM-объект. Документацию можно найти здесь:

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

Ответ 3

Если вы используете С# 4.0 (.NET 4) вы можете использовать гораздо более простой синтаксис

var app = new Application( );

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

Что касается var: это упрощает работу, потому что С# решает, какой тип выбрать и идти. Если интересно, вы можете прочитать стили динамические и var.

Помните, что interop до С# 4.0 является совершенно другим явлением и как С# используется для обработки объектов Microsoft.

чтобы вы знали, насколько это различно, вот как вы должны были закодировать его до С# 4.0, чтобы поговорить с документом Word.

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