Hola portobilbao, te comento que yo he trabajado con archivos de excel, pero no los trabajo con formato *.xls formato97/2003 y te pongo el código que yo utilizo.
Código:
uploadedFileName = "archivo.xls";
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\" + uploadedFileName + "; Extended Properties='Excel 8.0;HDR=Yes;'";
dt = new DataTable("fileCSV");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [batch$]", conn))
{
da.Fill(dt);
}
if (dt.Columns.Count >= 9)
{
//TODO: Aca manipulamos las columnas como un DataTable normal.
}
Espero este código te sirva un montón y quedo a la orden.