CoreComponentExporter es una biblioteca de código abierto que proporciona métodos optimizados y fáciles de usar para exportar datos de DataTable e IEnumerable a archivos Excel (.xlsx, .xlsm, .xlsb, .xltx, .xltm). Utiliza NPOI para la generación eficiente de archivos Excel y SixLabors.ImageSharp para el manejo de imágenes. Compatible con múltiples versiones de .NET (6.0, 7.0, 8.0 y 9.0), lo que la convierte en una herramienta ideal para desarrolladores que buscan una solución de exportación de datos flexible y escalable.
$ dotnet add package CoreComponentExporterBiblioteca potente para la exportación de datos a múltiples formatos, incluyendo Excel (XLS/XLSX), CSV y JSON, mediante métodos de extensión sencillos y eficientes.
Instala el paquete vía NuGet:
dotnet add package DevKit.Exporter
Todos los exportadores están implementados como métodos de extensión sobre DataTable, IEnumerable<T> y IEnumerable<Dictionary<string, object>>.
Genera archivos de Excel directamente a disco o como MemoryStream.
// Exportar DataTable a archivo
tabla.ExportToMicrosoftExcel("reporte.xlsx");
// Exportar lista de objetos a MemoryStream
using var stream = miLista.ExportToMicrosoftExcel();
// Con formato de fecha específico
tabla.ExportToMicrosoftExcel("reporte_fecha.xls", DateFormatType.Long);
Generación de archivos planos o streams con delimitadores personalizables.
// Exportar a archivo con delimitador por defecto (,)
tabla.ExportToCsv("datos.csv");
// Exportar con delimitador personalizado (;)
miLista.ExportToCsv("datos_europa.csv", delimiter: ";");
// Obtener como MemoryStream
var csvStream = tabla.ExportToCsv(delimiter: "|");
Conversión rápida a cadenas JSON o archivos.
// Obtener cadena JSON desde DataTable
string json = tabla.ExportToJson();
// Exportar lista a archivo JSON
miLista.ExportToJson("data.json");
// Obtener cadena JSON desde objeto único (Pretty Print por defecto)
string jsonObj = miObjeto.ToJson();
DataTable, DataRow, colecciones genéricas y diccionarios.MemoryStream para integraciones con APIs web.DateTime y valores DBNull.