Principales respuestas
Leer desde C# un rango de celdas de Excel

Pregunta
-
Respuestas
-
Revisa este enlace: http://labloguera.net/blogs/elperucho/archive/2007/04/14/leyendo-un-hoja-de-excel-con-c.aspx
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi Blog: Jtorrecilla
Enlace a Faq de Winforms en Ingles Muy bueno- Propuesto como respuesta chisigo jueves, 15 de abril de 2010 11:07
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
-
Si no te queda claro también tienes este link:
http://support.microsoft.com/default.aspx/kb/316934/es?p=1
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
-
Hola, Ricardo:
Si tu intención es leer el rango de celdas A5:F15 de la hoja llamada Hoja1, utilizando el ISAM de Excel del motor Microsoft Jet lo harías de la siguiente manera:
using (OleDbConnection cnn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Mis documentos\\Libro1.xls;" +
"Extended Properties='Excel 8.0;HDR=No'"))
{
string sql = "SELECT * FROM [Hoja1$A5:F15]";OleDbDataAdapter da = new OleDbDataAdapter(sql, cnn);
DataTable dt = new DataTable("RangoCeldas");
da.Fill(dt);
this.dataGridView1.DataSource = dt;
}
Fíjate en la consulta SQL de selección, la cual hace referencia al rango de celdas sin nombre A5:F15 existente en la Hoja1. Es decir, se indica el nombre de la hoja seguido del rango de celdas. Por supuesto, tienes que encerrar el nombre entre corchetes, tal y como aparece en el ejemplo.Pero si deseas seleccionar un rango de celdas con nombre llamado Rango1, entonces la consulta SQL de selección sería la siguiente:
string sql = "SELECT * FROM [Rango1]";
En este caso no es necesario encerrar el nombre entre corchetes, siempre y cuando el nombre no tenga espacios en blanco o signos poco comunes, aunque se aconseja que el nombre lo encierres entre corchetes.
Por último, si tu intención es seleccionar toda la hoja de cálculo llamada Hoja1, entonces ejecutarías:
string sql = "SELECT * FROM [Hoja1$]";
Es decir, el nombre de la hoja debe acabar con el signo $, y en éste caso, también es necesario que encierres el nombre de la hoja entre corchetes.
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. Montejo viernes, 16 de abril de 2010 12:18
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
Todas las respuestas
-
Revisa este enlace: http://labloguera.net/blogs/elperucho/archive/2007/04/14/leyendo-un-hoja-de-excel-con-c.aspx
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi Blog: Jtorrecilla
Enlace a Faq de Winforms en Ingles Muy bueno- Propuesto como respuesta chisigo jueves, 15 de abril de 2010 11:07
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
-
Si no te queda claro también tienes este link:
http://support.microsoft.com/default.aspx/kb/316934/es?p=1
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
-
Hola, Ricardo:
Si tu intención es leer el rango de celdas A5:F15 de la hoja llamada Hoja1, utilizando el ISAM de Excel del motor Microsoft Jet lo harías de la siguiente manera:
using (OleDbConnection cnn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Mis documentos\\Libro1.xls;" +
"Extended Properties='Excel 8.0;HDR=No'"))
{
string sql = "SELECT * FROM [Hoja1$A5:F15]";OleDbDataAdapter da = new OleDbDataAdapter(sql, cnn);
DataTable dt = new DataTable("RangoCeldas");
da.Fill(dt);
this.dataGridView1.DataSource = dt;
}
Fíjate en la consulta SQL de selección, la cual hace referencia al rango de celdas sin nombre A5:F15 existente en la Hoja1. Es decir, se indica el nombre de la hoja seguido del rango de celdas. Por supuesto, tienes que encerrar el nombre entre corchetes, tal y como aparece en el ejemplo.Pero si deseas seleccionar un rango de celdas con nombre llamado Rango1, entonces la consulta SQL de selección sería la siguiente:
string sql = "SELECT * FROM [Rango1]";
En este caso no es necesario encerrar el nombre entre corchetes, siempre y cuando el nombre no tenga espacios en blanco o signos poco comunes, aunque se aconseja que el nombre lo encierres entre corchetes.
Por último, si tu intención es seleccionar toda la hoja de cálculo llamada Hoja1, entonces ejecutarías:
string sql = "SELECT * FROM [Hoja1$]";
Es decir, el nombre de la hoja debe acabar con el signo $, y en éste caso, también es necesario que encierres el nombre de la hoja entre corchetes.
Un saludo
Enrique Martínez [MS MVP - VB]- Propuesto como respuesta Enrique M. Montejo viernes, 16 de abril de 2010 12:18
- Marcado como respuesta Ricardo Cabra sábado, 17 de abril de 2010 3:34
-