Do you write to each cell individually? If yes, try optimizing by pasting large ranges at once. Anyway, you should try to make as few calls through Interop boundary as possible.
Plus you might consider alternatives like writing via ACE OleDB if you don't care about formatting.