كيفية تحرير موارد كائنات COM الخاصة بـ Excel Interop في C# بشكل صحيح؟
مرحبًا بالجميع! أكتب تطبيقًا صغيرًا بلغة C# للعمل مع Excel عبر Microsoft.Office.Interop.Excel. واجهت مشكلة: بعد تنفيذ الكود، تبقى عملية Excel.exe في مدير المهام ولا تنتهي، حتى عندما أستدعي Quit() و Marshal.ReleaseComObject() بشكل صريح.
إليك مثال على الكود الخاص بي:
using Excel = Microsoft.Office.Interop.Excel;
public void ExportToExcel()
{
var excelApp = new Excel.Application();
excelApp.Visible = false;
var workbook = excelApp.Workbooks.Add();
var worksheet = workbook.Worksheets[1] as Excel.Worksheet;
worksheet.Cells[1, 1] = "Hello";
worksheet.Cells[1, 2] = "World";
workbook.SaveAs(@"C:\test.xlsx");
workbook.Close();
excelApp.Quit();
Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(excelApp);
}
بعد تشغيل هذه الطريقة، لا تزال عملية Excel معلقة. جربت خيارات مختلفة: خ