Фоновый процесс Excel остается открытым после каждого открытия и чтения файла с помощью Iterop. После запуска метода ниже несколько раз я получаю много фоновых процессов Excel. Я понимаю, что это было задано в разное время, но я пробовал все предложения (и реализовал их в коде ниже), и ничего не получилось. Может кто-то помочь.Excel Фоновый процесс не закрывается
public List<double> ReadExcelFile()
{
Application excelApp = null;
Workbooks workbooks = null;
Workbook workBook = null;
Worksheet worksheet = null;
Range excelRange = null;
List<double> sheetValues = new List<double>();
try
{
excelApp = new Application();
workbooks = excelApp.Workbooks;
workBook = workbooks.Open(f_inputFilePath,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
worksheet = workBook.Sheets["Sheet1"];
excelRange = worksheet.UsedRange;
object[,] sheetValuesRaw = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
for (int i = f_firstNumericValueIndex; i <= sheetValuesRaw.GetLength(0); i++)
sheetValues.Add((double)sheetValuesRaw[i, 1]);
}
finally
{
workBook.Close(false, Type.Missing, Type.Missing);
workbooks.Close();
releaseObject(excelRange);
releaseObject(worksheet);
releaseObject(workbooks);
releaseObject(workBook);
excelApp.Quit();
releaseObject(excelApp);
}
return sheetValues;
}
private void releaseObject(object obj)
{
try
{
Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
Спасибо, что сработало! – TheXela