En este artículo, aprenderá cómo crear archivos Excel XLS/XLSX mediante programación en C# sin instalar MS Office.

Crear archivo de Excel en la API de C#

Las hojas de cálculo hoy en día se han convertido en una parte esencial para guardar, organizar y analizar los datos. Las hojas de cálculo, como MS Excel, son capaces de realizar cálculos y ordenar, generar gráficos o cuadros, crear presupuestos y realizar muchas otras tareas de contabilidad o análisis de datos. Dado que las soluciones automatizadas están más en el negocio en estos días, la tendencia de crear y manipular documentos de Excel (XLS/XLSX) ha surgido y está creciendo a un ritmo enorme. Este caso de uso ha planteado la necesidad de contar con una solución de automatización de Excel.

De acuerdo con el escenario mencionado anteriormente, este completo artículo tiene como objetivo mostrarle algunas funciones básicas para la automatización de Excel en aplicaciones C# .NET.

API de C# para crear archivos de Excel

Para trabajar con documentos de Excel, utilizaremos Aspose.Cells for .NET, que es una potente API para crear, leer y manipular documentos de hojas de cálculo, incluidos archivos XLS y XLSX. Puede descargar o instalar la API de una de las siguientes maneras:

Uso del Administrador de paquetes NuGet

Biblioteca de automatización de C# Excel

Uso de la consola del administrador de paquetes

PM> Install-Package Aspose.Cells

Cree un Excel XLS o XLSX en C#

Un archivo de Excel también se conoce como Workbook y se compone de hojas de trabajo únicas o múltiples que contienen las filas y columnas para contener los datos. Por lo tanto, un Workbook actúa como contenedor de las hojas de trabajo en un archivo de Excel. Entonces, para crear un archivo de Excel, primero creará un Workbook y luego las hojas de trabajo dentro de ese Workbook. Los siguientes son los pasos para crear un archivo de Excel usando Aspose.Cells for .NET.

  • Cree una instancia de la clase Workbook.
  • Acceda a la primera hoja de trabajo (creada por defecto) del Workbook.
  • Acceda a la(s) celda(s) deseada(s) de la hoja de trabajo y coloque el valor en la(s) celda(s).
  • Guarde el Workbook como un archivo XLS o XLSX.

El siguiente ejemplo de código muestra cómo crear un archivo XLSX de Excel usando C#.

// Cree una instancia de un objeto Workbook que represente un archivo de Excel.
Workbook wb = new Workbook();

// Cuando crea un nuevo Workbook, se agrega una "Hoja1" predeterminada al Workbook.
Worksheet sheet = wb.Worksheets[0];

// Accede a la celda "A1" de la hoja.
Cell cell = sheet.Cells["A1"];

// Ingrese el "¡Hola mundo!" texto en la celda "A1".
cell.PutValue("Hello World!");

// Guarde el Excel como archivo .xlsx.
wb.Save("Excel.xlsx", SaveFormat.Xlsx);

Producción

Crear archivos de Excel en C#

Escribir datos en un archivo XLSX de Excel en C#

En caso de que desee editar y escribir datos en un archivo de Excel existente, también puede hacerlo de manera similar. Simplemente cargue el documento de hoja de cálculo de Excel de origen utilizando el objeto Workbook y acceda a las hojas de trabajo y celdas deseadas. Los siguientes son los pasos para editar un archivo de Excel existente.

  • Abra un archivo de Excel en un objeto FileStream.
  • Cree una instancia de Workbook e inicialícela con el objeto FileStream.
  • Acceda a las hojas de trabajo y celdas usando las clases Worksheet y Cell respectivamente.
  • Guarde el Workbook como un archivo .xlsx de Excel.

El siguiente ejemplo de código muestra cómo editar y escribir datos en un archivo XLSX de Excel existente en C#.

// Cree una instancia de un objeto Workbook que represente un archivo de Excel.
Workbook wb = new Workbook("Excel.xlsx");

// Acceda a "Hoja1" desde el Workbook.
Worksheet sheet = wb.Worksheets[0];

// Accede a la celda "A1" de la hoja.
Cell cell = sheet.Cells["A1"];

// Ingrese el "¡Hola mundo!" texto en la celda "A1".
cell.PutValue("The cell's value is updated.");

// Guarde el archivo de Excel como .xlsx.
wb.Save("Excel_updated.xlsx", SaveFormat.Xlsx);

Cree tablas o gráficos en un archivo XLSX de Excel usando C#

Las hojas de cálculo de Excel proporcionan una buena manera de analizar o presentar los datos visualmente mediante gráficos y tablas. Aspose.Cells for .NET proporciona un conjunto completo de clases para crear y manipular una variedad de gráficos en hojas de cálculo de Excel donde cada clase se usa para realizar algunas tareas específicas.

Para crear los gráficos en un archivo de Excel, deberá seguir los siguientes pasos:

  • Agregue algunos datos (para usar como fuente de datos) a la hoja de trabajo accediendo a sus celdas.
  • Agregue un nuevo objeto de gráfico a la hoja de trabajo usando la colección Worksheet.Charts pasando el tipo de gráfico usando la enumeración ChartType.
  • Obtenga el gráfico recién creado de la colección en un objeto Chart.
  • Especifique el rango de celdas para proporcionar la fuente de datos al objeto del gráfico.
  • Guarde el Workbook como un archivo .xlsx de Excel.

El siguiente ejemplo de código muestra cómo crear un gráfico en un archivo XLSX de Excel en C#.

// Cree una instancia de un objeto Workbook que represente un archivo de Excel.
Workbook wb = new Workbook();

// Agregue una nueva hoja de cálculo al objeto de Excel.
int sheetIndex = wb.Worksheets.Add();

// Obtenga la referencia de la hoja de trabajo recién agregada pasando su índice de hoja.
Worksheet worksheet = wb.Worksheets[sheetIndex];

// Agregue valores ficticios a las celdas.
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);

// Agregue un gráfico a la hoja de trabajo.
int chartIndex = worksheet.Charts.Add(Charts.ChartType.Pyramid, 5, 0, 15, 5);

// Acceda a la instancia del gráfico recién agregado.
Charts.Chart chart = worksheet.Charts[chartIndex];

// Agregue SeriesCollection (fuente de datos del gráfico) al gráfico desde la celda "A1" hasta la "B3".
chart.NSeries.Add("A1:B3", true);

// Guarde el archivo de Excel.
wb.Save("Excel_Chart.xlsx", SaveFormat.Xlsx);

Producción

Crear gráfico en Excel en C#

Más información sobre la creación de gráficos en hojas de cálculo de Excel con C#.

Crear una tabla en Excel Archivo XLSX en C#

También puede crear una tabla a partir del rango de celdas en una hoja de cálculo de Excel y agregar una fila para el total (suma, conteo, etc.) en la tabla. Los siguientes son los pasos para crear una tabla en un archivo de Excel (XLSX) usando Aspose.Cells for .NET:

  • Cargue un libro de Excel o cree uno nuevo usando la clase Workbook.
  • Agregue datos a las celdas de la hoja de cálculo.
  • Agregue un nuevo ListObject a la hoja de trabajo.
  • Establezca la propiedad ListObject.ShowTotals en verdadero.
  • Calcule el total y guarde el Workbook como un archivo .xlsx de Excel.

El siguiente ejemplo de código muestra cómo crear una tabla en una hoja de cálculo de Excel en C#.

// Cree una instancia de un objeto Workbook que represente un archivo de Excel.
Workbook wb = new Workbook();

// Obtenga la primera hoja de trabajo.
Worksheet sheet = wb.Worksheets[0];

// Obtención de la colección de celdas de Worksheet
Cells cells = sheet.Cells;

// Establecer el valor de las celdas
Aspose.Cells.Cell cell = cells["A1"];
cell.PutValue("Employee");
cell = cells["B1"];
cell.PutValue("Quarter");
cell = cells["C1"];
cell.PutValue("Product");
cell = cells["D1"];
cell.PutValue("Continent");
cell = cells["E1"];
cell.PutValue("Country");
cell = cells["F1"];
cell.PutValue("Sale");

cell = cells["A2"];
cell.PutValue("David");
cell = cells["A3"];
cell.PutValue("David");
cell = cells["A4"];
cell.PutValue("David");
cell = cells["A5"];
cell.PutValue("David");
cell = cells["A6"];
cell.PutValue("James"); 

cell = cells["B2"];
cell.PutValue(1);
cell = cells["B3"];
cell.PutValue(2);
cell = cells["B4"];
cell.PutValue(3);
cell = cells["B5"];
cell.PutValue(4);
cell = cells["B6"];
cell.PutValue(1); 

cell = cells["C2"];
cell.PutValue("Maxilaku");
cell = cells["C3"];
cell.PutValue("Maxilaku");
cell = cells["C4"];
cell.PutValue("Chai");
cell = cells["C5"];
cell.PutValue("Maxilaku");
cell = cells["C6"];
cell.PutValue("Chang"); 

cell = cells["D2"];
cell.PutValue("Asia");
cell = cells["D3"];
cell.PutValue("Asia");
cell = cells["D4"];
cell.PutValue("Asia");
cell = cells["D5"];
cell.PutValue("Asia");
cell = cells["D6"];
cell.PutValue("Europe"); 


cell = cells["E2"];
cell.PutValue("China");
cell = cells["E3"];
cell.PutValue("India");
cell = cells["E4"];
cell.PutValue("Korea");
cell = cells["E5"];
cell.PutValue("India");
cell = cells["E6"];
cell.PutValue("France"); 


cell = cells["F2"];
cell.PutValue(2000);
cell = cells["F3"];
cell.PutValue(500);
cell = cells["F4"];
cell.PutValue(1200);
cell = cells["F5"];
cell.PutValue(1500);
cell = cells["F6"];
cell.PutValue(500); 

// Agregar un nuevo objeto de lista a la hoja de trabajo
Tables.ListObject listObject = sheet.ListObjects[sheet.ListObjects.Add("A1", "F6", true)];

// Agregar estilo predeterminado a la tabla
listObject.TableStyleType = Tables.TableStyleType.TableStyleMedium10;

// Mostrar totales
listObject.ShowTotals = true;

// Establecer el tipo de cálculo del campo Trimestre
listObject.ListColumns[1].TotalsCalculation = Tables.TotalsCalculation.Count;

// Guarde el archivo de Excel.
wb.Save("Excel_Table.xlsx", SaveFormat.Xlsx);

Producción

Crear tabla en hoja de cálculo de Excel en C#

Obtenga más información sobre cómo trabajar con tablas en hojas de cálculo de Excel usando C#.

Conclusión

En este artículo, ha aprendido a crear archivos de Excel desde cero usando C#. Además, ha visto cómo insertar datos en hojas, generar gráficos e insertar tablas en archivos de Excel. Puede echar un vistazo a la documentación de Aspose.Cells for .NET para conocer las características avanzadas para la manipulación de archivos de Excel en C#.

Artículo relacionado