Как использовать getActiveObject (“Excel. Приложение”)

Класс для управления датами NSDate. Метод для получения временных интервалов -timeIntervalSinceDate:. Результат NSTimeInterval значение, которое является double представление интервала в секундах.

можно создать NSDate объект от NSString с +dateWithString:, при условии, что дата отформатирована как 24.03.2001 10:45:32 +0600 .

5
задан Walialu 11 April 2019 в 19:58
поделиться

2 ответа

Чтобы иметь возможность ссылаться на объектную модель Excel как на «Excel», вы можете создать псевдоним с помощью , используя оператор в верхней части пространства имен ( или документ) следующим образом:

using Excel = Microsoft.Office.Interop.Excel;

После этого вы можете ссылаться на Excel.Application вместо длинного Microsoft.Office.Interop.Excel.Application .

As почему ваш звонок в Marshal.GetActiveObject терпит неудачу, я не могу сказать наверняка. Пара мыслей:

(1) Вы уверены, что уже существует работающий экземпляр Excel? Если нет, то создайте новое приложение Excel:

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

(2) Если определенно уже запущено приложение Excel, то возможно, что экземпляр Excel еще не был добавлен в Таблицу бегущих объектов (ROT), если Excel Приложение никогда не теряет фокус. Видеть: Ошибка Visual C # .NET при подключении к запущенному экземпляру приложения Office для получения дополнительной информации. Я считаю, что в этом случае метод Marshal.GetActiveObject должен генерировать исключение, а не возвращать значение null, но это все еще кажется потенциально актуальным.

Надеюсь, это поможет ...

Майк

1
ответ дан 14 December 2019 в 08:56
поделиться

После примерно половины игры вокруг я, наконец, выяснил, как сделать эту работу, чтобы вы могли защелнить на открытой копии Excel. Мои пользователи сильно жалуются о том, чтобы иметь слишком много случаев открытой Excel.

Вот фрагмент того, что я сделал, чтобы получить его, работал:

_Application excelApp;

try
{
  excelApp = (_Application)Marshal.GetActiveObject("Excel.Application");
}
catch(Exception)
{
  // this is important. If Excel is not running, GetActiveObject will throw
  // an exception
  excelApp = null;
}

if( excelApp == null )
{
  excelApp = new ApplicationClass();
}

Я гонился на это некоторое время, и, наконец, имел некоторое время, чтобы наклониться и понять его.

3
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: