Crear un Archivo Excel con Epplus - Parte 5 - Dando Formato a nuestro Archivo Excel

Fecha de Publicación: 2019-07-13

Introducción

Si has llegado directamente te recomiendo visitar la serie de post anteriores para la libreria Epplus para que comiences el proyecto desde 0, si tu intención es solo resolver dudas continuemos.

Resultado

Las siguientes imagenes es lo que obtendremos al realizar la serie completa Crear un Archivo Excel con Epplus:

00_cees_00

Codigo Fuente

Descargar

Dando Formato a nuestro Archivo Excel

Este metodo inserta los encabezados y tiene la configuración de la celda que se quiere pintar en el archivo Excel.


#region EncabezadosGeneral

private static int EncabezadosGeneral(ExcelWorksheet ws, int nRow, bool bShowLastUpdate)
{
    #region titles Grls
    CommonExcel.cellString(ws, nRow, 1, nRow, 1, "Codigo Postal", false, CommonExcel.colorAzulRey, CommonExcel.colorBlanco, CommonExcel.colorBlanco, 10);
    CommonExcel.cellString(ws, nRow, 2, nRow, 2, "Ciudad", false, CommonExcel.colorAzulRey, CommonExcel.colorBlanco, CommonExcel.colorBlanco, 10);
    CommonExcel.cellString(ws, nRow, 3, nRow, 3, "Municipio", false, CommonExcel.colorAzulRey, CommonExcel.colorBlanco, CommonExcel.colorBlanco, 10);
    CommonExcel.cellString(ws, nRow, 4, nRow, 4, "Asenta", false, CommonExcel.colorAzulRey, CommonExcel.colorBlanco, CommonExcel.colorBlanco, 10);
    #endregion //titlesGrls
    nRow++;

    return nRow;
}

#endregion //EncabezadosGeneral
        
Este codigo que a continuación se muestra es una clase que parametriza entre otras cosas los colores de las celdas, da formato a las celdas tipo string y numero.


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml;
using OfficeOpenXml.Style;

namespace CreateExcelEpplus
{
    class CommonExcel
    {
        #region Propiedades

        public static string strUltimaActualizacion = string.Empty;

        #region Colors

        public static Color colorBordersReport = System.Drawing.Color.FromArgb(0, 205, 204, 204);

        public static Color colorNegro = System.Drawing.Color.FromArgb(0, 0, 0, 0);

        public static Color colorBlanco = System.Drawing.Color.FromArgb(0, 255, 255, 255);//

        public static Color colorAzulRey = System.Drawing.Color.FromArgb(0, 10, 32, 96);//

        #endregion//Colors


        #region Alineacion

        public static ExcelHorizontalAlignment horizontalAligmentCenter = ExcelHorizontalAlignment.Center;

        public static ExcelHorizontalAlignment horizontalAligmentLeft = ExcelHorizontalAlignment.Left;

        public static ExcelHorizontalAlignment horizontalAligmentRight = ExcelHorizontalAlignment.Right;

        #endregion//Alineacion


        #endregion //Propiedades


        #region Atributos
        #endregion //Atributos


        #region Instancias
        #endregion //Instancias


        #region Constructores
        #endregion //Constructores


        #region Metodos Publicos

        #region Paramtros Excel


        #region CellString
        public static void cellString(ExcelWorksheet ws, int nFromRow, int nFromCol, int nToRow, int nToCol, string strValue
                              , bool bBold, Color cBkgSetColor, Color cFontSetColor, Color cBorderSetColor, int nFontSize)
        {
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Merge = true;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Value = strValue;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Font.Bold = bBold;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.WrapText = true;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Font.Color.SetColor(cFontSetColor);
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Font.Size = nFontSize;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Fill.PatternType = ExcelFillStyle.Solid;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Fill.BackgroundColor.SetColor(cBkgSetColor);
            ws.Cells[nFromRow, nFromCol, nToRow, nToCol].Style.Border.BorderAround(ExcelBorderStyle.Thin, cBorderSetColor);
        }

        #endregion//CellString


        #region CellNumber
        public static void cellNumber(ExcelWorksheet ws, int nRow, int nCol, int nValue, bool bBold
                              , bool bBkgSetColor, Color cBkgSetColor, Color cFontSetColor, Color cBorderSetColor, int nFontSize
                              , ExcelHorizontalAlignment xlsHorizAligment)
        {
            ws.Cells[nRow, nCol].Value = nValue;
            ws.Cells[nRow, nCol].Style.Font.Bold = bBold;
            ws.Cells[nRow, nCol].Style.Font.Color.SetColor(cFontSetColor);
            ws.Cells[nRow, nCol].Style.Font.Size = nFontSize;
            ws.Cells[nRow, nCol].Style.HorizontalAlignment = xlsHorizAligment;
            ws.Cells[nRow, nCol].Style.Border.BorderAround(ExcelBorderStyle.Thin, cBorderSetColor);
            ws.Cells[nRow, nCol].Style.Fill.PatternType = ExcelFillStyle.Solid;
            if (bBkgSetColor == true)
            {
                ws.Cells[nRow, nCol].Style.Fill.BackgroundColor.SetColor(cBkgSetColor);
            }
        }
        #endregion//CellNumber



        #region workSheetStyles
        public static void WorkSheetStyles(ExcelWorksheet ws)
        {
            int i = 0
              , j = 0;

            ws.Cells.Style.Font.Size = 10;
            ws.Cells.Style.Font.Name = "Century Gothic";
            ws.View.ShowGridLines = false;
        }
        #endregion//workSheetStyles


        #endregion//Parametros Excel


        #endregion //Metodos Publicos


        #region Metodos Privados
        #endregion //Metodos Privados
    }

}

        
Cuando ya hemos realizado todos estos pasos procederemos a ejecutar el programa obteniendo los resultados que en la parte inicial se muestran. Sin embargo para recordar los pondre nuevamente:

Y con esto hemos finalizado el ejercicio!!!

Muchas gracias y si te fue util el ejercicio por favor hazmelo saber en las formas de contacto que se muestran en la parte inferior.

Hasta la proxima.