lunes, enero 10, 2011

Acceder a datos de una hoja excel

Para acceder a los datos de un excel podemos crear una función como la siguiente:

public DataTable GetExcel(string filename, string sheetName)
{
    OleDbConnection dbConn = null;
    DataTable resultTable = new DataTable(sheetName);

    // Build connection string.
    string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source=" + filename +
        ";Extended Properties=Excel 8.0;";

    // Create connection and open it.
    dbConn = new OleDbConnection(connString);
    dbConn.Open();

    if (!sheetName.EndsWith("$"))
    {
        sheetName += '$';
    }
    string query = string.Format("SELECT * FROM [{0}]", sheetName);

    using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, dbConn))
    {
        adapter.Fill(resultTable);
    }

    return resultTable;
}

Y en nuestro código usarla así:

    […]


    DataTable clientes;
    clientes = GetExcel(Application.StartupPath + @"\MiExcel.xls", "Hoja1"); // Buscará el fichero donde esté el exe.

    int numFilas = clientes.Rows.Count; // Cuidado, la primera fila se considera de títulos!

    string nombre = clientes.Rows[5]["Nombre"].ToString(); // Valor de la fila 5 y columna con título “Nombre”.

    […]

No hay comentarios:

Publicar un comentario