<p>How can I create an Excel spreadsheet with C# without requiring Excel to be installed on the machine that's running the code?</p>

You actually might want to check out the interop classes available in C# (e.g.
```
Microsoft.Office.Interop.Excel
```
. You say no OLE (which this isn't), but the interop classes are very easy to use. Check out the
C# Documentation here
(Interop for Excel starts on page 1072 of the C# PDF).
You might be impressed if you haven't tried them.
Please be warned of Microsoft's
stance
on this:
Microsoft does not currently recommend, and does not support,
  Automation of Microsoft Office applications from any unattended,
  non-interactive client application or component (including ASP,
  ASP.NET, DCOM, and NT Services), because Office may exhibit unstable
  behavior and/or deadlock when Office is run in this environment.