Использование Interop.Excel для открытия документа Excel.Загружено слишком мало листов - PullRequest
0 голосов
/ 22 марта 2011

У меня проблема с API Microsoft.Office.Interop.Excel (с использованием C #). Как только я загружаю существующий файл .xls, используя метод, показанный ниже, и затем запрашиваю конкретную рабочую таблицу, которая, как я знаю, существует в файле .xls, я просто получаю исключение.

Файл .xls, который я загружаю, огромен и получил около 35 листов, но странно то, что кажется, что загружаются только первые 3 листа документа.

//Code to load document
var xlApp = new Microsoft.Office.Interop.Excel.Application();
var xlWorkBook = xlApp.Workbooks.Open("PathAndNameOfMyFile.xls", 0, true, 5, "", "", true,    Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

//code that fails or just returns bad ansvers:
//This code just returns a list of 3 worksheets
var test = xlWorkBook.Worksheets.Cast<Worksheet>().ToList();

//The first 3 worksheets loads fine, but not the fourth:
var sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(4);//fails

//also the command xlWorkBook.Worksheets.Count returns 3. 

Так у кого-нибудь есть идея, почему это так? Будем благодарны за любые идеи.

ОБНОВЛЕНИЕ: открывая файл xls, я обнаружил, что на самом деле кажется, что Excel Interop вместо этого открывает ссылочный файл xla в файле xls. Если это так, это объясняет, почему число листов возвращается неверно - кто-нибудь видел такое поведение раньше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...