Доступ к листу Excel в файле класса C # с помощью VSTO

Я создал надстройку Excel, используя шаблон VSTO (VS2010, Excel2007). В обозревателе решений у меня есть группа под названием Excel, а под ней - файл ExcelAddIn.cs. Он имеет доступ к активному рабочему листу через код вроде

public partial class MyAddIn
{
    Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet;
    Excel.Range firstRow = activeWorksheet.get_Range("A1",missing);
}

и т. Д. Этот код работает нормально, т.е. Я могу получить модель Excel.

Однако вместо того, чтобы помещать весь мой код обработки в этот файл одного класса, я хотел бы работать с данными листа Excel в другом файле класса. Я создал этот файл, но не могу использовать в нем код, подобный приведенному выше, т.е. Я не могу получить доступ к модели Excel из этого файла. Я продублировал ссылки «using Microsoft.Office.Tools.Excel», но добавление строки вида:

Excel.Worksheet activeWorksheet = (Excel.Worksheet)Application.Activesheet;

дает мне ошибку «Имя« Приложение »не существует в текущем контексте».

Любое идеи о том, какие ссылки / изменения мне нужно сделать, чтобы получить модель Excel из этого отдельного файла класса?

Кстати. Работающий файл ссылается на объект «Excel.Application» для этой первой строки кода, второй отдельный файл, который не работает, ссылается на объект «Microsoft.Office.Interop.Excel».

Спасибо Пит

==== НАШЛИ ОТВЕТ ==== Чтобы получить доступ к своим рабочим листам из других классов, которые вы добавляете, просто откройте

Globals.ThisAddIn.Application.ActiveSheet;

, например:

Excel.Worksheet ws = (Excel.Worksheet)Globals.ThisAddin.Application.ActiveSheet;

, где ThisAddIn - это имя класса, созданного вашим мастером (возможно, вы переименовали его).

Итак используйте Globals для доступа к объектам Excel за пределами кода ThisAddin.

5
задан Pete855217 17 August 2011 в 14:02
поделиться