If you want to stick with SharePoint programmatically, your best bet is to use the template of the document library, as that's the only way I know of to "create" a document. Essentially this code will pull from the Document Template of the SharePoint library. You, of course, need to have an Excel document as a template of the document library already in place.
using (SPSite site = new SPSite("http://sharepointsite"))
using (SPWeb myWeb = site.OpenWeb())
SPDocumentLibrary myLib = myWeb.Lists["Library Name"];
SPFolder myFolder = myLib.RootFolder;
SPFile myFile = myWeb.GetFile(myDocLib.DocumentTemplateUrl);
myFolder.Files.Add("File name", myFile.OpenBinary(), true);
I think with this code and the OpenXML API that Arsalan Adam Khatri posted, you should be able to do what you want to with SharePoint programmatically.