Hi,
maybe it has to do with the garbage collector.
We had a similar problem with Exchange RPC Connections and Outlook Objects.
We use a workaround, we count the items processed and after e.g. 20 Items you do a GC.Collect().
So the Garbage Collector releases the references to COM Objects clearly, and you can go on with your work.
There's also another approach. Since Excel objects still are COM Objects you can call explicitly a Marshal.ReleaseComObject (object) when you are finished with your e.g. workbook, so it's release from memory also.