Visual CSharp .NET - Como abrir un excel en una ventana c# y leer

 
Vista:

Como abrir un excel en una ventana c# y leer

Publicado por alex (1 intervención) el 11/09/2007 15:25:37
El Señor Jesucristo los bendiga,

Les escribo para pedirles el favor si me pueden ayudar con la siguiente inquietud:

Necesito abrir en una ventana de c# un archivo de excel, el usuario debe poder seleccionar unas celdas y luego presionar: "Aceptar", cuando el usuario presione aceptar, yo debo leer los datos seleccionados en el archivo excel.

Cómo puedo hacer esto ? alguien tiene un código similar ? donde puedo encontrar algo que se asemeje para yo adaptarlo ?

Muchas gracias,

Si quieres bajar música cristiana y escuchar mensajes de la palabra de Dios, puedes ingresar a : www.cristianosdemedellin.com

"Y me dijo: Hecho está. Yo soy el Alfa y la Omega, el principio y el fin. Al que tuviere sed, yo le daré gratuitamente de la fuente del agua de la vida."

Apocalipsis 21: 6
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como abrir un excel en una ventana c# y leer

Publicado por nacho (1 intervención) el 25/10/2007 15:13:36
Leyendo un hoja de excel con Visual C#

Como sabemos los archivos de Microsoft Excel, son libros formados por varias hojas de calculos dentro de un solo archivo, ver figura 1


Los archivos de excel lo manejamos con el namespace "System.Data.OleDb".

Crearemos un dataset y un providerfactories el cual utilizaremos para leer es esquela del libro de excel:


DataSet dsMsExcel = new DataSet();
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");


Con esta instrución leeremos el esquema del libro de excel

try

{

DataTable worksheets;

DbConnection connection = factory.CreateConnection();

connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.txtRutaArchivo.Text + ";Extended Properties=Excel 8.0;";

connection.ConnectionString = connectionString;

connection.Open();

worksheets = connection.GetSchema("Tables");

this.dGridViewTabla.DataSource = worksheets;

}

catch (Exception)

{

MessageBox.Show("Se produjo un error. Puede ser que la hoja de calculo a abrir no exista o posea un esquema diferente.");

}



una vez leido el esquema del libro de excel, leeremos el esquema de la hoja, para obtener las calumnas. Mediante la siguiente instrucción obtendremos lo mencionado.

try

{

DataTable columns;

string[] restrictions = { null, null, this.txtHolaExcel.Text, null };

DbConnection connection = factory.CreateConnection();

connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.txtRutaArchivo.Text + ";Extended Properties=Excel 8.0;";

connection.ConnectionString = connectionString;

connection.Open();

columns = connection.GetSchema("Columns", restrictions);

this.dGridViewColumns.DataSource = columns;

}

catch (Exception)

{

MessageBox.Show("Se produjo un error. Puede ser que la hoja de calculo a abrir no exista o posea un esquema diferente.");

}



leeremos los datos de la hoja de calculo de excel, con la siguiente instrucción como siempre lo mostraremos en un DataGridView



try

{

connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.txtRutaArchivo.Text + ";Extended Properties=Excel 8.0;";

DbDataAdapter adapter = factory.CreateDataAdapter();

DbCommand selectCommand = factory.CreateCommand();

string losCampos = string.Empty;

// Introdusco los campos en una listbox, para luego leerlo y armar una instrucción sql con los datos a buscar.

foreach (string theCampo in this.lstCampo.Items)

{

losCampos += (theCampo + ", ");

}

losCampos = losCampos.Remove(losCampos.Length - 2, 2);

//selectCommand.CommandText = "SELECT Codigo, Descripcion, Categoria, CodigoBarras FROM [Enero$]";

selectCommand.CommandText = "SELECT " + losCampos + " FROM [" + this.txtHolaExcel.Text + "]";

DbConnection connection = factory.CreateConnection();

connection.ConnectionString = connectionString;

selectCommand.Connection = connection;

adapter.SelectCommand = selectCommand;

this.dsMsExcel.Tables.Clear();

adapter.Fill(this.dsMsExcel);

dGridViewDatos.DataSource = this.dsMsExcel.Tables[0];

}

catch (Exception ex1)

{

MessageBox.Show(ex1.Message + "Se produjo un error.");

}

Y al final obtendremos algo como esto.



como vemos realmente es muy facil leer un archivo de excel, com ADO.NET, utilice la ayuda del blog de David Hayden, para conseguir ciertos truquillos...

Publicado sábado, 14 de abril de 2007 20:11 por elperucho
Archivado en: ADO.NET 2.0,C#
Comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como abrir un excel en una ventana c# y leer

Publicado por javier guajardo (1 intervención) el 10/09/2008 16:09:39
y como puedo pasearme por las hojas del excel para saber cual de ellas quiero abrir??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como abrir un excel en una ventana c# y leer

Publicado por Dios (1 intervención) el 03/03/2010 00:16:53
No inventes primero investiga en un libro y despues pregunta, en ese caso te envio la solucion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como abrir un excel en una ventana c# y leer

Publicado por shago (1 intervención) el 07/08/2014 18:30:10
si no comentaras la ayuda, mejor no comentes nada............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar