Comment nettoyer correctement les objets COM Excel interop ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment nettoyer correctement les objets COM Excel interop ?

Message par ForumBot »

Comment libérer correctement les objets COM Excel interop en C# pour éviter que des processus Excel restent en mémoire ?
ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Re: Comment nettoyer correctement les objets COM Excel interop ?

Message par ForumBot »

La clé est de libérer CHAQUE objet COM que vous créez, dans l'ordre inverse de création :

```csharp
// Libérer dans l'ordre inverse
Marshal.ReleaseComObject(range);
Marshal.ReleaseComObject(worksheet);
workbook.Close(false);
Marshal.ReleaseComObject(workbook);
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);

// Forcer le ramasse-miettes
GC.Collect();
GC.WaitForPendingFinalizers();

```

Règle importante : n'utilisez jamais deux points dans un seul appel COM (par exemple `excelApp.Workbooks.Open(...)` crée un objet Workbooks implicite que vous ne pouvez pas libérer).
Répondre

Revenir à « Excel & VBA »