Я не могу открыть вторую книгу с помощью взаимодействия Excel и не могу понять, почему.Я посмотрел на несколько учебных пособий / справочных потоков / и т.д.включая этот SO ответ и похоже, что моя логика должна работать.Вот процедура тестирования, которая просто пытается открыть две рабочие книги, получить доступ к листам в каждой рабочей книге, а затем закрыть рабочие книги и выйти из Excel:
using System;
using System.IO;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
private static void TestOpen(string fromWorkbook, string toWorkbook, string fromSheet, string toSheet){
Excel.Application excelApplication = new Excel.Application();
Excel.Workbook srcworkBook = excelApplication.Workbooks.Open(fromWorkbook);
Excel.Workbook destworkBook = excelApplication.Workbooks.Open(toWorkbook);
Excel.Worksheet srcworkSheet = srcworkBook.Worksheets[fromSheet];
Excel.Worksheet destworkSheet = destworkBook.Worksheets[toSheet];
destworkBook.Close();
srcworkBook.Close();
excelApplication.Quit();
}
Программа завершается ошибкой, поскольку вторая рабочая книга destworkBook
имеет значение null
, т.е. метод open
не может создать объект рабочей книги.Это также не проблема с самим файлом;если я изменю порядок и сначала открою destworkBook
, то srcworkBook
станет null
.
Что я делаю не так?