Ir al contenido principal

Crear Excel con C# sin librerias de Office - SpreadsheetLight

En este ejemplo se crea un archivo Excel(xlsx) con dos hojas.
La libreria hay que usar es SpreadsheetLight.
El codigo es de un proyecto de consola y logicamente le falta el:
using SpreadsheetLight;



class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Ingrese direccion");
            string direccion = Console.ReadLine();
            //string pathFile = AppDomain.CurrentDomain.BaseDirectory + "miExcel.xlsx";
            string pathFile = @"C:\Users\mauro_t5auj7r\Desktop\" + "miExcel.xlsx";

            SLDocument oSLDocument = new SLDocument();

            oSLDocument.AddWorksheet("Hojita 1");
            // Elimina la hoja que se crea por default
            oSLDocument.DeleteWorksheet("Sheet1");

            System.Data.DataTable dt = new System.Data.DataTable();

            //columnas
            dt.Columns.Add("Campo 1", typeof(string));
            dt.Columns.Add("Campo 2", typeof(int));
            dt.Columns.Add("Campo 3", typeof(string));
            dt.Columns.Add("Campo 4", typeof(DateTime));
            dt.Columns.Add("Campo 5", typeof(string));
            dt.Columns.Add("Campo 6", typeof(string));
            dt.Columns.Add("Campo 7", typeof(string));

            //registros , rows
            for (int i = 0; i < 1500; i++)
            {
                dt.Rows.Add("Dato " + i, i, "Dato " + i, DateTime.Now, "Dato1 " + i, "Dato1" + i, "Dato1" + i);
            }

            oSLDocument.ImportDataTable(1, 1, dt, true);

            oSLDocument.AddWorksheet("Hojita 2");
            
            oSLDocument.ImportDataTable(1, 1, dt, true);

            oSLDocument.SaveAs(pathFile);
        }

        
    }

La version de la libreria que use es:

En el caso que salga un error con DocumentFormat.OpenXml, yo descargue la 2.5.0 y se soluciono:



Fuente

Comentarios

Entradas populares de este blog

Cargar Archivo de texto a Sql Server con Integration Services SSIS

Script usado en el ejemplo: CREATE TABLE dbo.Personas ( idPersona INT PRIMARY KEY IDENTITY(1,1), Codigo VARCHAR(3), Nombres VARCHAR(17), Edad VARCHAR(3), Fecha VARCHAR(8), Ocupacion VARCHAR(13) ) Archivo: 001Juan Perez 02931122000Estudiante 002Juana Rosi 05301011982Profesor 003Edgar Bravo 03131121990Comerciante 004Monica Argento 04031121972Medico 005Jorge Lopez 02231121932Desocupado 006Ezequiel Bianchi 02131121987Deportista 007Pepe Argento 02731121960Actor

DataTable con C#

Crea un DataTable. Crea sus columnas, una es de tipo entero auto incremental. Carga dos registros y luego son mostrados por consola. NameSpace necesario: System.Data DataTable dt = new DataTable("Personas"); DataColumn colIdPersona = dt.Columns.Add("idPersona", typeof(Int32)); colIdPersona.AllowDBNull = false; colIdPersona.Unique = true; colIdPersona.AutoIncrement = true; colIdPersona.AutoIncrementSeed = 1; colIdPersona.AutoIncrementStep = 1; DataColumn colNombre = dt.Columns.Add("Nombre", typeof(string)); colNombre.AllowDBNull = false; dt.Columns.Add("Edad", typeof(Int16)); dt.Columns.Add("FechaNacimiento", typeof(DateTime)); dt.Rows.Add(null, "Jorge", 44, Convert.ToDateTime("31/12/1970").ToString("dd/MM/yyyy")); dt.Rows.Add(null, "Valeria", 30, Convert.ToDateTime("12/02/1986").ToString("dd/MM/yyyy")); foreach (DataRow item in dt.Rows) { Console.WriteLine(item[0])...