Использование ExcelAsyncUtil.QueueAsMacro, когда Excel работает только для автоматизации связи.C#

Место общения программистов C#
Ответить
Anonymous
 Использование ExcelAsyncUtil.QueueAsMacro, когда Excel работает только для автоматизации связи.

Сообщение Anonymous »

Я пытаюсь создать модульный тест для функции, которая выполняется в фоновом режиме из Excel. Мой модульный тест может нормально запустить фоновый рабочий процесс, но когда BW завершается, мы используем ExcelAsyncUtil.QueueAsMacro из ExcelDNA для обработки результата. Это прекрасно работает в обычном пользовательском потоке

Код: Выделить всё

private void BW_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{ // This is the worker thread-completed code
ExcelAsyncUtil.QueueAsMacro(() =>
{
string[] outputs = (string[])e.Result;
if (outputs.Length < 1)
{
MessageBox.Show("Unable to retrieve result", title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
Common.ExitToExcel();
return;
}
Однако, если я запущу это из модульного теста без видимого окна Excel, я получу следующую ошибку:
ExcelDna.Integration.dll!ExcelDna. Integration.ExcelAsyncUtil.QueueAsMacro(ExcelDna.Integration.ExcelAction action) Неизвестно

Выброшено исключение: «System.NullReferenceException» в
ExcelDna.Integration.dll Необработанное исключение типа
«System.NullReferenceException» произошло в ExcelDna.Integration.dll
Ссылка на объект не установлена ​​на экземпляр объекта .

Excel открывается через Excel Interop, когда эта ошибка возникает в тестовом режиме

Код: Выделить всё

xl.Application excelApp = new xl.Application(); //open an Excel application with the given workbook
xl.Workbook workbook = excelApp.Workbooks.Open(filepath);
Нужно ли мне что-то сделать, чтобы правильно инициализировать интеграцию ExcelDNA, когда Excel запускается через Interop и работает без видимого графического интерфейса?

Подробнее здесь: https://stackoverflow.com/questions/792 ... automation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»