miércoles, 15 de agosto de 2018

Leer Archivo Excel utilizando LinqToExcel



Ejemplo de implementacion:

        public int LeerDocumentoExcel(ref List<ComplementoPagoImportadoExcel> LCPIE, string RutaArchivo, out string MensajeError)
        {
            try
            {
                MensajeError = string.Empty;
                var book = new ExcelQueryFactory(RutaArchivo);
                var resultado = (from row in book.Worksheet("Hoja1")
                                 let item = new ComplementoPagoImportadoExcel
                                 {
                                     //ENCABEZADO DE DOCUMENTO
                                     Serie = row["SERIE"].Cast<string>(),
                                     Cliente = row["CLIENTE"].Cast<string>(),
                                     Bodega = row["BODEGA"].Cast<string>(),
                                     Fecha = row["FECHA"].Cast<DateTime>(),
                                     FormaPago = row["FORMAPAGO"].Cast<int>(),
                                     Expedido = row["EXPEDIDO"].Cast<string>(),
                                     FechaPago = row["FECHA DE PAGO"].Cast<DateTime>(),
                                     Moneda = row["MONEDA"].Cast<string>(),
                                     TipoCambio = row["TIPO DE CAMBIO"].Cast<int>(),
                                     CondicionesPago = row["CONDICIONES PAGO"].Cast<string>(),
                                     Referencia = row["REFERENCIA"].Cast<string>(),
                                     ExcentoIva = row["EXCENTO IVA"].Cast<string>(),
                                     TazaIva = row["TASA IVA"].Cast<decimal>(),
                                     TazarIva = row["TASAR IVA"].Cast<decimal>(),
                                     TipoRelacion = row["TIPO DE RELACION "].Cast<string>(),
                                     UsoDeCFDI = row["USO DE CFDI"].Cast<string>(),
                                     Notas = row["NOTAS"].Cast<string>(),
                                     Confirmacion = row["CONFIRMACIÓN"].Cast<string>(),
                                     MedioPago = row["MEDIO DE PAGO"].Cast<string>(),


                                     //COMPLEMENTO DE PAGO
                                     FechaPagoCP = row["FECHA DE PAGO"].Cast<DateTime>(),
                                     HoraPago = row["HORA PAGO"].Cast<DateTime>(),
                                     MonedaPago = row["MONEDA PAGO"].Cast<string>(),
                                     TipoPago = row["TIPO DE PAGO"].Cast<string>(),
                                     FormaPagoCP = row["FORMA DE PAGO"].Cast<string>(),
                                     Monto = row["MONTO"].Cast<decimal>(),
                                     NumeroOpera = row["NUMERO OPERACIÓN"].Cast<string>(),
                                     RFCEmisor = row["Rfc Emisor:"].Cast<string>(),
                                     NoBanco = row["Nom Banco:"].Cast<string>(),
                                     CuentaOrdenante = row["Cuenta Ordenante:"].Cast<string>(),
                                     RfcBeneficiario = row["Rfc Beneficiario:"].Cast<string>(),
                                     CuentaBeneficiaria = row["Cuenta Beneficiario:"].Cast<string>(),
                                     TipoCadenaPago = row["Tipo Cadena Pago:"].Cast<string>(),
                                     CertificadoPago = row["Certificado de Pago:"].Cast<string>(),
                                     CadenaPago = row["Cadena Pago:"].Cast<string>(),
                                     SelloPago = row["Sello Pago:"].Cast<string>(),


                                     //DETALLE COMPLEMENTO PAGO
                                     SerieDCP = row["SERIE"].Cast<string>(),
                                     FolioDCP = row["FOLIO"].Cast<string>(),
                                     UUIDDCP = row["UUID"].Cast<string>(),
                                     MonedaDCP = row["MONEDA"].Cast<string>(),
                                     TipoCambioDCP = row["TIPO CAMBIO"].Cast<int>(),
                                     ParcialidadCDP = row["PARCIALIDAD"].Cast<int>(),
                                     SaldoAnteriorDCP = row["SALDO ANTERIOR"].Cast<decimal>(),
                                     ImportePagadoDCP = row["IMPORTE PAGADO"].Cast<decimal>(),
                                     SaldoDCP = row["SALDO"].Cast<decimal>()
                                 }
                                 //where (item.Serie != null) || (item.Cliente != null) || (item.Bodega != null)
                                 select item).ToList();

                var aux = (from x in resultado
                           where (x.Serie != null) || (x.Cliente != null) || (x.Bodega != null)
                           select x).ToList();

                book.Dispose();
                LCPIE = aux;
                return 0;
            }
            catch (Exception e)
            {

                MensajeError = e.Message;
                return -1;
            }

        }

No hay comentarios:

Publicar un comentario

Comenta cualquier duda o recomendatorio.