Beispiel #1
0
        /// <summary>
        /// Define el ancho que tendrán las notas de la tabla
        /// </summary>
        /// <param name="datos"></param>
        /// <param name="configuracionTablaTheme"></param>
        /// <returns></returns>
        private void CalcularAnchosNotas(DataTable datos,
                                         IConfiguracionTabla configuracionTablaTheme)
        {
            var ancho = datos.Columns.Count;

            foreach (var cabecera in configuracionTablaTheme.Cabeceras)
            {
                cabecera.AnchoCeldas = ancho;
            }

            foreach (var nota in configuracionTablaTheme.Pies)
            {
                nota.AnchoCeldas = ancho;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Crea un archivo Excel en formato de array de bytes.
        /// </summary>
        /// <param name="datos">datos para crear el archivo</param>
        /// <param name="tituloPagina">Nombre de la página que contendrá la tabla</param>
        /// <param name="configuracionTabla">Configuración del diseño de la página</param>
        /// <returns>Array de bytes con el contenido del archivo ya creado</returns>
        public MemoryStream CrearMemoryStreamExcel(DataTable datos, string tituloPagina,
                                                   IConfiguracionTabla configuracionTabla = null)
        {
            XLWorkbook documento;

            if (configuracionTabla == null || configuracionTabla.GetType() == typeof(ConfiguracionTablaManual))
            {
                documento = CrearDocumento(datos, tituloPagina, (ConfiguracionTablaManual)configuracionTabla);
            }
            else if (configuracionTabla.GetType() == typeof(ConfiguracionTablaTheme))
            {
                documento = CrearDocumento(datos, tituloPagina, (ConfiguracionTablaTheme)configuracionTabla);
            }
            else
            {
                throw new Exception("El tipo " + configuracionTabla.GetType().Name +
                                    " como configuración de tablas Excel no está soportado.");
            }

            return(documento.ToMemoryStream());
        }
Beispiel #3
0
        /// <summary>
        /// Introduce los datos de la tabla en la página
        /// </summary>
        /// <param name="worksheet"></param>
        /// <param name="datos"></param>
        /// <param name="configuracionTabla"></param>
        /// <returns></returns>
        private IXLWorksheet IntroducirTabla(IXLWorksheet worksheet, DataTable datos,
                                             IConfiguracionTabla configuracionTabla)
        {
            var posicion = SiguientePosicion(worksheet, configuracionTabla.PosicionInicial);

            var tableWithData = worksheet.Cell(posicion.Fila, posicion.Columna).InsertTable(datos.AsEnumerable());

            if (configuracionTabla.GetType() == typeof(ConfiguracionTablaManual))
            {
                tableWithData.Theme = XLTableTheme.None;
                ((ConfiguracionTablaManual)configuracionTabla).EstiloTabla.AplicarEstilo(tableWithData.Style);
            }
            else if (configuracionTabla.GetType() == typeof(ConfiguracionTablaTheme))
            {
                tableWithData.Theme = ((ConfiguracionTablaTheme)configuracionTabla).ThemeTabla;
            }

            tableWithData.SetShowAutoFilter(configuracionTabla.ShowAutoFilter);
            worksheet.Columns().AdjustToContents();
            return(worksheet);
        }
Beispiel #4
0
 /// <summary>
 /// Crea un archivo Excel en formato de array de bytes.
 /// </summary>
 /// <param name="datos">datos para crear el archivo</param>
 /// <param name="tituloPagina">Nombre de la página que contendrá la tabla</param>
 /// <param name="configuracionTabla">Configuración del diseño de la página</param>
 /// <returns>Array de bytes con el contenido del archivo ya creado</returns>
 public MemoryStream CrearMemoryStreamExcel <T>(IEnumerable <T> datos, string tituloPagina,
                                                IConfiguracionTabla configuracionTabla = null)
 {
     return(CrearMemoryStreamExcel(datos.ToDataTable(), tituloPagina, configuracionTabla));
 }