25/1/2007 19:30
Augusto Ruiz
Accediendo a datos de Excel desde C# con OleDb
Microartículo al canto sobre extracción de datos de Excel utilizando ADO.NET. Excitante, ¿verdad?
¿Que no?... Bueno, quizá no tanto, pero como me ha resultado útil, sobre todo para evitar picar datos a mano, y pasarlos a SQL Server... Pues aprovecho y calzo un microartículo.
Lo primero que debemos hacer es hacer nuestros datos accesibles a OleDb. Para ellos, desde Excel, abrimos nuestro fichero excel, y en la hoja en la que tengamos los datos, los seleccionamos, incluyendo las cabeceras de las columnas. Incluir las cabeceras es importante, porque nos darán los nombres de las columnas cuando accedamos al DataTable.
Teniendo los datos seleccionados, vamos al menú Insertar->Nombre->Definir..., (Insert->Name->Define...), y elegimos un nombre para la selección. Este nombre será el que usemos a la hora de hacer nuestra consulta como nombre de tabla.
Una vez hecho esto, guardamos el fichero y cerramos Excel.
En nuestra aplicación C#, lo que debemos hacer es crear una OleDbConnection con la siguiente cadena de conexión:
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=Excel 8.0;";
Y ya tenemos lista la conexión. Para recuperar los datos, crearemos un OleDbCommand, con una consulta similar a la siguiente:
OleDbCommand objCmdSelect =
new OleDbCommand("SELECT * FROM NombreAsignadoEnExcel", objConn);
Y con esto, habremos terminado.
Saludos!
Archivado en: .NET,ADO.NET,Excel
Comparte este post: