Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/05/2013, 09:16
element_freak
 
Fecha de Ingreso: abril-2013
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Leer gran cantidad de celdas de un Excel y realizar operaciones con ellas

//************************************************** *****************************
//Leer el path del archivo Excel que tiene los datos del cliente
//Dimensionar los elementos necesarios para leer y cargar los datos
OleDbConnection oConn = new OleDbConnection();
OleDbCommand oCmd = new OleDbCommand();
OleDbDataAdapter oDa = new OleDbDataAdapter();
DataSet oDs = new DataSet();

string rutaArchivo = "C:Cualquier ruta donde tienes el Excel a leer\\Prueba.xlsx";
string dato = string.Empty, rut = string.Empty, nombre = string.Empty, cuentaCte = string.Empty, totalNomina = string.Empty, cantidadReg = string.Empty, fechaEfect = string.Empty, tipoAbono = string.Empty;
//Atención: Esta es la cadena de conexión. La misma lee el archivo especificado en el path
//Capturo la extensio, dependiendo difiere de la connectionstring
if (Path.GetExtension(rutaArchivo).Equals(".xls"))
{
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + (rutaArchivo) + "; Extended Properties='Excel 8.0;HDR=YES;MaxScanRows=;IMEX=1;'";
}
else
{
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + (rutaArchivo) + "; Extended Properties='Excel 12.0;HDR=YES;MaxScanRows=;IMEX=1;'";
}
// Abrir la conexión, y leer [Hoja 1] del archivo Excel
oConn.Open();
oCmd.CommandText = "select * from [Hoja1$]";
oCmd.Connection = oConn;
oDa.SelectCommand = oCmd;

//Llenar el DataSet
oDa.Fill(oDs,"Clientes");

DataTable tabla = oDs.Tables[0];
//GridView para comprobar que todos los datos se estan pasando, luego lo sacas si quieres.
GridView1.DataSource = tabla;
GridView1.DataBind();


//Recorres la tabla para capturas los datos. ese me servia ami, tu lo modificas a tu gusto.
for (int uu = 0; uu < tabla.Rows.Count; uu++)
{
nombre = tabla.Rows[uu][1].ToString();
cuentaCte = tabla.Rows[uu][2].ToString();
rut = tabla.Rows[uu][3].ToString();
totalNomina = tabla.Rows[uu][4].ToString();
cantidadReg = tabla.Rows[uu][5].ToString();

}
oConn.Close();


Espero que te sirva