none
Leer datos de Excel en Mvc RRS feed

  • Pregunta

  • Hola:

    Tengo una aplicación en Asp Net Mvc en el cual se tienen que mostrar los datos de una planilla de Excel, buscando por internet, encontre el siguiente código, el cual lo he integrado a mi proyecto. El problema es que la aplicacion tiene datos que son Datetime y al haber datos que son vacios o null, la aplicacion me lanza un mensaje de error diciendo

    "No se puede reconocer la cadena como valor DateTime válido"

    ", he probado distintas formas,como:

    FechaEntrega = Convert.ToDateTime(row["FECHA ENTREGA"].Value), o

    FechaEntrega=row["FECHA ENTREGA"].Cast<DateTime?>().GetValueOrDefault()

    pero aun me figura el error

    El codigo es el siguiente:

    public ActionResult InsertarEquipos(string pathDelFicheroExcel)
            {            

                var book = new ExcelQueryFactory(Server.MapPath("~/Documentos/Copia.xlsm"));

                    var resultado = (from row in book.Worksheet("EQUIPOS")
                                     where row["SERIE"] != null
                                     let item = new EquiposVendidosViewModels
                                     {
                                         
                                         NSerieEquipo = row["SERIE"].Cast<string>(),
                                         PartnumberEquipo = row["N/P"].Cast<string>(),
                                         EquipoId = row["EQUIPO"].Cast<string>(),
                                         ClienteId = row["CLIENTE"].Cast<string>(),
                                         FechaCompra = row["Fecha Compra"].Cast<DateTime>(),
                                         FechaEntrega = row["FECHA ENTREGA"].Cast<DateTime>(),
                                         FechaEntregaContrato = row["INICIO"].Cast<DateTime>(),
                                         Observaciones = row["OBSERVACIONES"].Cast<string>(),
                                         ObservacionesContrato = row["OBSERVACIONES CONTRATO"].Cast<string>(),
                                         Precio = row["PRECIO"].Cast<double>(),
                                         PrecioVenta = row["PRECIO VENTA"].Cast<double>(),
                                         ObservacionesPrecio = row["OBSERVACIONES PRECIO"].Cast<string>(),
                                         IC = row["IC"].Cast<string>(),
                                         Bodega = row["BOD"].Cast<string>(),
                                         Ubicacion = row["UBI"].Cast<string>(),
                                         SLA = row["SLA"].Cast<string>(),
                                         Tipo = row["TIPO"].Cast<string>(),

                                     }
                                     select item).ToList();
                    book.Dispose();       
                    return View(datos);

            }

    Debo mencionar que este codigo lo he probado con otras planillas Excel que no tiene campos de fecha en blanco y funciona, el problema es que el cliente en  su planilla tiene campos de fecha que estan vacios. Si alguien pudiera echarme una mano se lo agradecería.

    Atte.

    Juan Lobos


    Juan Lobos


    • Editado jhon1121 martes, 9 de junio de 2015 18:33
    martes, 9 de junio de 2015 18:31

Respuestas

  • hola

    que pasa si pruebas definir como string los campos de fecha

    FechaCompra = row["Fecha Compra"].Cast<string>(),

    de esta forma, podrias observar si hay algun dato que no es una fecha valida

    Nota: define esto mismo en todos los campos de fecha

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta jhon1121 miércoles, 10 de junio de 2015 0:59
    martes, 9 de junio de 2015 18:50

Todas las respuestas

  • hola

    que pasa si pruebas definir como string los campos de fecha

    FechaCompra = row["Fecha Compra"].Cast<string>(),

    de esta forma, podrias observar si hay algun dato que no es una fecha valida

    Nota: define esto mismo en todos los campos de fecha

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta jhon1121 miércoles, 10 de junio de 2015 0:59
    martes, 9 de junio de 2015 18:50
  • Gracias no se me habia ocurrido eso, lo probare

    Juan Lobos

    martes, 9 de junio de 2015 19:49