Я пытаюсь открыть лист 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-объект все еще не работает правильно. (Как в первом исключении)
Что я могу сделать, чтобы это снова заработало?