Question: Has to be free.
Has to support all versions of Excel files.
Has to have C# .NET API.

I need to do all of the specified actions (reading/creating/updating).

Has anyone used any library l this kind sucessfully 

Update:

I read a lot of bad things about Ole DB, and Interop is not an option since this is a web application running on a server.

Answer: 
Try to use OleDB [Reading Excel files from C#](https://stackoverflow.com/questions/15828/reading-excel-files-from-c)
From a [previous answer](https://stackoverflow.com/questions/3416722/better-option-for-hosting-ms-office-documents-in-custom-app/3458960#3458960) on a different question:

* You might consider using the Excel object model and COM interop to read the data from the Excel file into your application. Granted, this includes a dependency on Excel being installed, but it is a possibility. [This article](http://dotnetperls.com/excel-interop) has some great code for getting started with reading Excel files in this way.
* A better way might be to use a library that doesn't have a dependency on Excel being installed on the local system. [This answer](https://stackoverflow.com/questions/3449541/exporting-excel-to-c/3449613#3449613) suggests using the [Excel Data Reader library](http://exceldatareader.codeplex.com/), available on CodePlex.

Like I pointed out in [my other answer](https://stackoverflow.com/questions/3416722/better-option-for-hosting-ms-office-documents-in-custom-app/3458960#3458960), there are paid third-party libraries that will likely do *exactly* what you are looking for. I understand you want something that is free, but in my experience with free Excel libraries, you tend to need to do a good bit of extra work to get it to play the right way.