Iterop içeren bir dosyayı açtığımda ve okuduğumda bir Excel arka plan işlemi açık kalır. Aşağıdaki yöntemi birkaç kez çalıştırdıktan sonra, bir çok Excel arka plan işlemiyle sonuçlandım. Bunun çeşitli zamanlardan önce sorulduğunu anladım ama tüm önerileri denedim (ve bunları aşağıdaki kodda uyguladık) ve hiçbir şey işe yaramadı. Birisi yardım edebilir.Excel Arka Plan İşlemi Kapanmıyor
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();
}
}
Teşekkürler, işe yaradı! – TheXela