ASP.NET - Cómo Recorrer un archivo de excel

   
Vista:

Cómo Recorrer un archivo de excel

Publicado por Leonardo (52 intervenciones) el 26/09/2008 19:37:16
Buenas Tardes, estoy trabajando en una aplicación Web con C#. Necesito reccorrer los primeros 5 renglones de un archivo de excel, y verificar cuantas veces se repite el valor de la primer celda en los siguientes renglones, pero estoy teniendo problemas para utilizar el método get_Offset (en teoría este método desplaza el rango el número de renglones y columnas especificadas)

Lo que tengo que hacer es lo siguiente:
1. Posicionarme en la primer celda (A1) de la hoja de datos de Excel
2. Guardar el valor de la celda A1
3. Hacer un ciclo para recorrer los registros del 2 al 5
4. Brincar un renglon para estar en la celda correspodiente (primer iteración A2, segunda A3, tercera A4, últmima A5)
5. Si los valores de la celda A1 y la celda correspondiente entonces incrementar un contador
6. Regresar al punto 4 hasta completar el ciclo
7. Terminar.

Este es el código que tengo:

Excel.Application APexcel;
Excel.Workbook Libro;
Excel.Worksheet Hoja;
Excel.Range Rango;
//Para archivo que necesito recorrer
Libro = APexcel.Workbooks.Open("C:ArchivosExcelEjemplo.xlsx", Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
APexcel.Visible = false;
//Me posiciono en la primer hoja del detos del libro Ejemplos.xlsx
Hoja = (Excel.Worksheet)Libro.ActiveSheet;
object Celda = "A1";
//Creo un rango que se posiciona en la celda A1 (primer celda de la hoja de datos)
Rango = Hoja.get_Range(Celda, Celda);
//Me posiciono en la celda A1
Rango.Select();
//Obtengo el valor de la celda A1
primer_texto = Rango.Value2.ToString().Trim();
c_iguales = 1;
//ciclo para comparar los renglones del 2 al 5
for (f = 1; f <= 4; f++)
{
Rango.get_Offset(1, 0); //<- En teoría debería desplazar el rango un renglón
Rango.Select();
if (Rango.Value2.ToString().Trim() == primer_texto)
{
c_iguales++;
}
}

Hasta el monto de tomar el valor de la celda 1 todo está perfecto, pero no realiza el desplazamiento de la celda, siempre se queda con el mismo valor. ¿Alguna idea de qué probleme hay en el código? ¿Alguna otra idea de cómo puedo hacer esta comparación?

Saludos y muchas gracias por el apoyo
Leo
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