I have used NPOI. Its free and very good. For most people the drawbacks below are not big issues and I am sure they will be developed later so I only put them here to aid consideration.
The minor problems that I have so far are:
- You cant easily "transpose" your data.
- You cant easily insert columns.
No problem inserting rows, but you have to write your own custom functionality to insert columns or to transpose. I'm sure there are other limitations but I have not come across them yet. Overall, if these are the only 2 problems I have, I'll not complain (especially considering I have sufficiently resolved them for my own purposes).
If I had to export again at some point, I'd probably give the Office OpenXML library a try. But I'm not sure if this requires you to store a file on the server or not before transferring (or have office installed on the server). If either of these were true, I'd have to say no personally. This is the reason I did not use Excel Package (Linked in other answers). Not sure if it's changed but when I researched it, you had to store the file on the server before transferring it.