Have a look at the FileHelpers library. It will do exactly what you want.
With FileHelpers, you can read from Excel files and write to csv or flat text files. And it's object oriented! All you have to do is to annotate classes with some attributes so that they match the source excel file.
Consider this example:
[DelimitedRecord("|")]
public class CustomersVerticalBar {
public string CustomerID;
public string CompanyName;
...
}
Read using this:
ExcelStorage provider = new ExcelStorage(typeof(CustomersVerticalBar));
provider.StartRow = 3;
provider.StartColumn = 2;
provider.FileName = "Customers.xls";
CustomerVerticalBar[] res = (CustomerVerticalBar[]) provider.ExtractRecords();
Example taken from here: http://filehelpers.sourceforge.net/example_exceldatalink.html