You can't really write a raw excel file (xls, xlsx) without either OLE or Interoperable code and both require excel to actually be on the machine.
The files are a horrible binary format and if you want to really have a crack at raw writing them the specification is here
http://msdn.microsoft.com/en-us/library/cc313154%28v=office.14%29.aspx[
^]
The alternative is to write a simple comma seperated value text file (CSV) which excel supports on it's import.
http://en.wikipedia.org/wiki/Comma-separated_values[
^]
If you really need xlx,xlsx files then interoperable code is easy but it is excel version specific. OLE is a little more complicated to setup and use but it is generic to the different versions.