/// <summary>
        /// Carga los datos de una hoja de cálculo y aplica los valores encontrados al documento de instancia
        /// </summary>
        /// <param name="hojaImportar">Hoja de cálculo a importar</param>
        /// <param name="hojaPlantilla">Hoja de cálculo de la plantilla</param>
        /// <param name="instancia">Documento de instancia destino</param>
        /// <param name="informeErrores">Lista de de informe de errores</param>
        /// <param name="plantillaDocumento"></param>
        private void ImportarHojaDeCalculo(ISheet hojaImportar, ISheet hojaPlantilla, DocumentoInstanciaXbrlDto instancia,
                                           ResumenProcesoImportacionExcelDto resumenImportacion,
                                           IDefinicionPlantillaXbrl plantillaDocumento)
        {
            var rolUri = plantillaDocumento.ObtenerRolDeAlias(hojaPlantilla.SheetName);

            if (rolUri != null)
            {
                try
                {
                    //Si el rol tiene implementación específica utilizarla, si no, utilizar el importador genérico de plantilla
                    var idSpringImportador = plantillaDocumento.ObtenerIdSpringDefinicionElementosPlantillaDeRol(rolUri);
                    if (ObtenerApplicationContext().ContainsObject("importador_" + idSpringImportador))
                    {
                        var importadorRol = (IImportadorExportadorRolDocumento)ObtenerApplicationContext().GetObject("importador_" + idSpringImportador);
                        importadorRol.ImportarDatosDeHojaExcel(hojaImportar, hojaPlantilla, instancia, rolUri, resumenImportacion, plantillaDocumento);
                    }
                    else
                    {
                        ImportadorRolPlantillaGenerico.ImportarDatosDeHojaExcel(hojaImportar, hojaPlantilla, instancia, rolUri, resumenImportacion, plantillaDocumento);
                    }
                }
                catch (Exception ex)
                {
                    LogUtil.Error(ex);
                    resumenImportacion.InformeErrores.Add(new InformeErrorImportacion()
                    {
                        IdRol   = rolUri,
                        Mensaje = "Ocurrió un error al importar el rol : " + rolUri + " : " + ex.Message
                    });
                }
            }
        }
        /// <summary>
        /// Invoca al exportador definido para el rol a exportar, si no hay un exportador específico, se utiliza un exportador genérico
        /// para plantilla
        /// </summary>
        /// <param name="hojaExportar">Hoja del documento donde se colocan los datos</param>
        /// <param name="hojaPlantilla">Hoja del documento con la plantilla de captura</param>
        /// <param name="instancia">Documento de instancia</param>
        /// <param name="plantillaDocumento">Plantilla de captura del documento</param>
        /// <param name="informeErrores">Informe de errores</param>
        private void ExportarHojaDeCalculo(ISheet hojaExportar, ISheet hojaPlantilla, DocumentoInstanciaXbrlDto instancia, IDefinicionPlantillaXbrl plantillaDocumento,
                                           List <InformeErrorImportacion> informeErrores, String idioma)
        {
            var rolUri = plantillaDocumento.ObtenerRolDeAlias(hojaPlantilla.SheetName);

            if (rolUri != null)
            {
                try
                {
                    //Si el rol tiene implementación específica utilizarla, si no, utilizar el importador genérico de plantilla
                    var idSpringImportador = plantillaDocumento.ObtenerIdSpringDefinicionElementosPlantillaDeRol(rolUri);
                    if (ObtenerApplicationContext().ContainsObject("importador_" + idSpringImportador))
                    {
                        var importadorRol = (IImportadorExportadorRolDocumento)ObtenerApplicationContext().GetObject("importador_" + idSpringImportador);
                        importadorRol.ExportarDatosDeHojaExcel(hojaExportar, hojaPlantilla, instancia, rolUri, plantillaDocumento, idioma);
                    }
                    else
                    {
                        ImportadorRolPlantillaGenerico.ExportarDatosDeHojaExcel(hojaExportar, hojaPlantilla, instancia, rolUri, plantillaDocumento, idioma);
                    }
                }
                catch (Exception ex)
                {
                    LogUtil.Error(ex);
                    informeErrores.Add(new InformeErrorImportacion()
                    {
                        IdRol   = rolUri,
                        Mensaje = "Ocurrió un error al exportar el rol : " + rolUri + " : " + ex.Message
                    });
                }
            }
            ReemplazarEtiquetasEnHojaExcel(hojaExportar, hojaPlantilla, instancia.Taxonomia, idioma);
            QuitarPlaceHolderHechoEnHojaExcel(hojaExportar);
        }
 /// <summary>
 /// Invoca la exportación a documento de WORD del rol actual en el exportador correspondiente
 /// </summary>
 /// <param name="documentoExportar">Documento de word que se está llenando</param>
 /// <param name="instancia">Documento de instancia con datos de origen</param>
 /// <param name="plantillaDocumento">Plantilla actual del documento de instancia</param>
 /// <param name="rol">Rol exportado</param>
 private void ExportarRolADocumentoWord(Document documentoExportar, DocumentoInstanciaXbrlDto instancia, IDefinicionPlantillaXbrl plantillaDocumento, string rol, string claveIdioma)
 {
     if (rol != null)
     {
         try
         {
             var     iSeccion        = plantillaDocumento.ObtenerIndiceSeccionWordPorRol(rol);
             Section seccionExportar = null;
             if (iSeccion != null)
             {
                 seccionExportar = documentoExportar.Sections[Int32.Parse(iSeccion)];
             }
             if (seccionExportar != null)
             {
                 //Si el rol tiene implementación específica utilizarla, si no, utilizar el importador genérico de plantilla
                 var idSpringImportador = plantillaDocumento.ObtenerIdSpringDefinicionElementosPlantillaDeRol(rol);
                 if (ObtenerApplicationContext().ContainsObject("importador_" + idSpringImportador))
                 {
                     var importadorRol = (IImportadorExportadorRolDocumento)ObtenerApplicationContext().GetObject("importador_" + idSpringImportador);
                     importadorRol.ExportarRolADocumentoWord(documentoExportar, seccionExportar, instancia, rol, plantillaDocumento, claveIdioma);
                 }
                 else
                 {
                     ImportadorRolPlantillaGenerico.ExportarRolADocumentoWord(documentoExportar, seccionExportar, instancia, rol, plantillaDocumento, claveIdioma);
                 }
             }
         }
         catch (Exception ex)
         {
             LogUtil.Error(ex);
         }
     }
 }