Crear archivo de Excel en C#

Muhammad Zeeshan 15 febrero 2024
Crear archivo de Excel en C#

Usando el lenguaje de programación C#, aprenderemos a generar una hoja de cálculo de Excel.

Crear archivo de Excel en C#

Antes de continuar, verifique si su dispositivo tiene el componente Microsoft Excel 16.0 Object Library del .NET Framework, lo que confirma una instalación exitosa. Si es así, puede continuar.

Usaremos Microsoft Visual Studio para este proyecto.

Agregar referencia

Para crear un archivo de Excel, debemos agregar la Biblioteca de objetos de Microsoft Excel 16.0 como referencia. Siga estos pasos a continuación si desea saber cómo hacerlo.

  1. Inicie Microsoft Visual Studio y cree un nuevo proyecto C#.

  2. En el Explorador de soluciones, haga clic con el botón derecho en la opción Referencias y haga clic en Agregar referencia en la barra de menú.

    Microsoft Visual Studio - Agregar referencia

  3. Aparecerá una nueva ventana pequeña. Desde el panel izquierdo, seleccione COM y luego busque Microsoft Excel 16.0 Object Library de la lista y haga clic en "OK".

    Microsoft Visual Studio - Administrador de referencias

Crear el archivo

El siguiente ejemplo demuestra cómo generar un archivo de Excel mediante el uso de interoperabilidad COM.

  1. Para comenzar, importe las siguientes bibliotecas.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
  2. Inicialice el Objeto de la aplicación Excel antes de acceder a los servicios de interoperabilidad.

    using Microsoft.Office.Interop.Excel;
    using _excel = Microsoft.Office.Interop.Excel;
    
  3. Cree una aplicación de Excel llamada excelapp, y luego inicialice el objeto de Workbook y Worksheet, a los que nos referiremos como wb y ws, respectivamente.

    _Application excelapp = new _excel.Application();
    Workbook wb;
    Worksheet ws;
    
  1. Crea un método llamado CreateFile(). Cuando se ejecuta el método, producirá un nuevo documento de Excel al producir un nuevo libro de Excel que contiene solo una hoja de trabajo.

    public void CreateFile() {
      this.wb = excelapp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
      this.ws = this.wb.Worksheets[1];
    }
    
  2. Del mismo modo, cree un método llamado CreateSheet() que agregará una hoja de trabajo en blanco al libro de trabajo actual que se ha abierto.

    public void CreateSheet() {
      Worksheet worksheet1 = excelapp.Worksheets.Add(After: this.ws);
    }
    
  3. Cree un método que guarde el libro de trabajo en una ruta proporcionada por el usuario.

    public void SaveAs(string filepath) {
      wb.SaveAs(filepath);
    }
    
  4. Dentro del método Main(), inicializaremos un objeto de la clase Excel llamado Excelfile.

    Excel Excelfile = new Excel();
    
  5. Comience un nuevo libro de trabajo con solo una hoja usando la función Crear archivo ().

    Excelfile.CreateFile();
    
  6. Agregue una nueva hoja al libro de trabajo usando la función CreateSheet().

    Excelfile.CreateSheet();
    
  7. Guarde el archivo en una ruta específica utilizando la función SaveAs().

    Excelfile.SaveAs(@"D:myarticle/ExcelfilebyZeeshan.xlsx");
    Excelfile.wb.Close();
    

Código fuente completo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using _excel = Microsoft.Office.Interop.Excel;

namespace CreateExcelcsharpZeeshan {
  class Excel {
    _Application excelapp = new _excel.Application();
    Workbook wb;
    Worksheet ws;

    public void CreateFile() {
      this.wb = excelapp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
      this.ws = this.wb.Worksheets[1];
    }

    public void CreateSheet() {
      Worksheet worksheet1 = excelapp.Worksheets.Add(After: this.ws);
    }

    public void SaveAs(string filepath) {
      wb.SaveAs(filepath);
    }

    public static void Main(string[] args) {
      Excel Excelfile = new Excel();
      Excelfile.CreateFile();
      Excelfile.CreateSheet();
      Excelfile.SaveAs(@"D:myarticle/ExcelfilebyZeeshan.xlsx");
      Excelfile.wb.Close();
    }
  }
}

Producción:

creado con éxito un archivo de Excel

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp Excel