Ein Excel-Hintergrundprozess bleibt nach jedem Öffnen und Lesen einer Datei mit Iterop geöffnet. Nachdem ich die untenstehende Methode einige Male ausgeführt habe, habe ich eine Menge Excel Hintergrundprozesse. Ich weiß, dass dies schon mehrmals gefragt wurde, aber ich habe alle Vorschläge ausprobiert (und sie im unten stehenden Code implementiert) und nichts hat funktioniert. Könnte jemand bitte helfen.Excel-Hintergrundprozess schließt nicht
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();
}
}
Danke, das hat funktioniert! – TheXela