Generar archivos de Excel en C#, fácilmente con EPPlus

Limitaciones

  • No se pueden evaluar fórmulas
  • Únicamente el estilo "Normal" está definido (Hay que definir el estilo de "Contabilidad", para poder usar el formato de moneda).

Páquete de Nuget

Install-Package EPPlus

Referencias

using System.IO;
using System.Drawing;

using OfficeOpenXml;
using OfficeOpenXml.Style;
using OfficeOpenXml.Style.XmlAccess;

Código

FileStream fs = new FileStream("prueba.xlsx", FileMode.Create);
ExcelPackage Excel = new ExcelPackage(fs);

/* Creación del estilo. */
Excel.Workbook.Styles.CreateNamedStyle("Moneda");
ExcelNamedStyleXml moneda = Excel.Workbook.Styles.NamedStyles[1];// 0 = Normal, 1 (El que acabamos de agregar).

moneda.Style.Numberformat.Format = "_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;_-@_-";
moneda.Style.Fill.PatternType = ExcelFillStyle.Solid;
moneda.Style.Fill.BackgroundColor.SetColor(Color.Yellow);

/* Creación de hoja de trabajo. */
Excel.Workbook.Worksheets.Add("Hoja de Prueba 1");
ExcelWorksheet hoja = Excel.Workbook.Worksheets["Hoja de Prueba 1"];

/* Num Caracteres + 1.29 de Margen.
Los índices de columna empiezan desde 1. */
hoja.Column(1).Width = 11.29f;
            
ExcelRange rango = hoja.Cells["A1"];

rango.Value = 1.0M;
rango.StyleName = "Moneda";

Excel.Save();
            
// No estoy seguro de ésta parte, pero mejor cerramos el stream de archivo.
fs.Close();
fs.Dispose();
            
Excel.Dispose();

Referencias

Comentarios

Entradas más populares de este blog

Agregar o eliminar usuarios en Windows desde la consola (y quitar la expiración de contraseña)

Reinicio de asignación de puertos en Windows

Cómo Reducir el Tamaño de una Base de Datos en SQL Server