[WinForms - How To] Importar desde Excel a un DataGridView

marzo 03, 2016 Christian Amado 0 Comentarios

En esta época donde la información abunda, obtener datos desde un archivo de Microsoft Excel es algo común. Por eso, traigo aquí una manera de cargar un DataGridView a partir de un Excel. ImportarExcel1

Los pasos son muy sencillos. Primero escribimos el siguiente código:
//Obtenemos el archivo desde la ubicación actual
var executableFolderPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

//Hoja desde donde obtendremos los datos
string hoja = "Hoja1";
//Cadena de conexión
string conexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + executableFolderPath +
                "\\Registros.xlsx" +
                ";Extended Properties='Excel 8.0;HDR=YES;';";
                        
OleDbConnection con = new OleDbConnection(conexion);
//Consulta contra la hoja de Excel
OleDbCommand cmd = new OleDbCommand("Select * From [" + hoja + "$]", con);
try
{
    //Conectarse al archivo de Excel
    con.Open();

    OleDbDataAdapter sda = new OleDbDataAdapter(cmd);
    DataTable data = new DataTable();
                
    //Cargar los datos
    sda.Fill(data);

    //Cargar la grilla
    dataGridView1.DataSource = data;
}
catch
{
    //Error leyendo excel
    MessageBox.Show("Ocurrió un error en la lectura del archivo");
}
finally
{
    //Funcione o no, cerramos la cadena de conexión
    con.Close();
}
Y luego ejecutamos la aplicación. Nos trae los datos de la siguiente manera: ImportarExcel2

De esta manera, muy sencilla, podemos leer los datos desde un archivo Excel y cargarlo en el control DataGridView de un formulario Windows.