If you really do need Excel to run in the background (as opposed to generating Excel files using some 3rd-party library), there is nothing but danger if you try to use Excel as a singleton - especially if you try to use it over multiple threads.
Read these answers of mine (to somewhat related questions):
COM object excel interop clean up
Editing an Excel document with Macros in ASP.net
In general, it's much cleaner to start up Excel, perform whatever operation you need it to do and then shut it down immediately. This cleans up all resources and the next startup begins with a clean slate.
I don't know your actual usage pattern of Excel so not all of the details may apply to you but quite a few of them will. I may be able to add more detail if you have more specific questions.
If you just need to read / write .xlsx files, you may be able to use the OpenXML SDK instead of Excel. I haven't used it so I don't know if it'd fit your needs.
Edit: if you're using Excel to generate your data (which is typically very slow), you can look into other approaches where the data is generated as a text file / recordset and then imported into Excel: