Ответ 1
Здесь - это сообщение в блоге, которое касается этого. Похоже, вам нужно изменить
Microsoft.Office.Interop.Excel.ApplicationClass();
to
Microsoft.Office.Interop.Excel.Application();
Я хочу вызвать Excel Sheet из С# 4.0 (VS 2010 Express Edition).
Когда я объявляю,
Microsoft.Office.Interop.Excel.ApplicationClass excel =
new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Visible = true;
Я получаю сообщение об ошибке как
Interop type "Microsoft.Office.Interop.Excel.ApplicationClass" не может быть встроен. Вместо этого используйте соответствующий интерфейс.
Что такое душа?
Здесь - это сообщение в блоге, которое касается этого. Похоже, вам нужно изменить
Microsoft.Office.Interop.Excel.ApplicationClass();
to
Microsoft.Office.Interop.Excel.Application();
Ответ для меня заключался в том, чтобы пометить типы Embed Interop как ложные. См. этот вопрос.
Решено:
Excel.ApplicationClass
происходит из интерфейса Excel.Application
, и даже можно создать экземпляр Excel с помощью интерфейса Excel.Application
.
Перезапись этого кода, как показано ниже, дает точные результаты:
Excel.Application xlapp = new Excel.Application();
Вам нужно объявить переменную как Microsoft.Office.Interop.Excel.Application
, но создайте ее как Microsoft.Office.Interop.Excel.ApplicationClass
.
Excel.Application = new Excel.ApplicationClass();
Обратите внимание на ведущий Excel.Application
, а не Excel.ApplicationClass
.
Также обратите внимание, что это прямо из страницы MSDN для ApplicationClass.