HRESULT: 0x800401A8 при получении UsedRange of Worksheet - PullRequest
1 голос
/ 01 октября 2019

Я пытаюсь открыть лист Excel, получить UsedRange и пройти через него.

Это уже сработало один раз, но потом у меня было исключение

COM-объект, которыйбыл отделен от лежащего в его основе RCW, не может использоваться

после использования

System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkSheet);

Обратите внимание, что исключение продолжало появляться в приведенном ниже коде, а не при фактическом отпускании. Я сделал это в первый раз, и с тех пор я не мог заставить код ниже работать. К сожалению, я не знаю, на какой именно линии он больше падал.

Поскольку исключение продолжало появляться, я перезагружал свой компьютер, и с тех пор при попытке доступа к UsedRange я получаю исключение:

System.Runtime.InteropServices.COMException: «Ausnahme von HRESULT: 0x800401A8»

Вот код:

using Excel = Microsoft.Office.Interop.Excel;
....
var xlApp = new Excel.Application();
var xlWorkBook = xlApp.Workbooks.Open(file);
Excel.Worksheet xlWorkSheet = xlWorkBook.Sheets["Tabelle1"];
for (int i = 1; i < xlWorkSheet.UsedRange.Rows.Count; i++)
{ ...

Это сработало один раз, поэтому я 'Я думаю, что COM-объект все еще не работает правильно. (Как в первом исключении)

Что я могу сделать, чтобы это снова заработало?

1 Ответ

0 голосов
/ 01 октября 2019

Случилось так, что я случайно закрыл книгу и вышел из приложения в цикле foor, а не после него. Я случайно положил его перед}.

for (int i = 1; i < xlWorkSheet.UsedRange.Rows.Count; i++)
{ 
  ...
  xlWorkBook.Close(false);
  xlApp.Quit();
}

Конечно, это должно идти после цикла. Вы не можете получить доступ к переменной в книге, которая больше не открыта.

Так что, если у вас есть ошибка, проверьте, действительно ли книга действительно открыта.

Позор мне.

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