/// <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; } }
/// <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()); }
/// <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); }
/// <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)); }