Exportar DataTable a Excel en C#

Saad Aslam 12 octubre 2023
  1. Agregar paquete de referencia en Visual Studio
  2. Exportar DataTable a Excel usando C#
Exportar DataTable a Excel en C#

Este tutorial le enseñará cómo exportar una tabla de datos a un archivo de Excel en el lenguaje de programación C#. Es necesario agregar una referencia para crear un archivo de Excel y exportarlo antes de continuar con este proyecto.

Agregar paquete de referencia en Visual Studio

Se incluirá el paquete ExcelMapper para realizar diversas funciones de Excel. Para ello, siga las instrucciones que se describen a continuación.

  • Abra Visual Studio,, cree una Aplicación de consola y asígnele un nombre.
  • Haga clic derecho en el panel Explorador de soluciones y seleccione Administrar paquetes NuGet.
  • Ahora haga clic en la opción Examinar, busque ExcelMapper e instálelo.

Entendámoslo con un ejemplo de código.

Exportar DataTable a Excel usando C#

Para comenzar, importe las siguientes bibliotecas.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using Spire.Xls;

Ahora, genera una nueva instancia del objeto Workbook y guárdalo con el nombre Workbook.

Workbook workBook = new Workbook();
workBook.Worksheets.Clear();

Incluya una nueva instancia de la clase Hoja de trabajo y llámela hoja de trabajo.

Worksheet workSheet = workBook.Worksheets.Add("DataTableToExcel");

Cree un nuevo objeto de tipo DataTable con el nombre de variable DataTable.

DataTable dataTable = new DataTable();

Cree nuevas columnas etiquetadas como “Número de lista, Nombre del estudiante” y “Sección”.

dataTable.Columns.Add("Roll Number", typeof(String));
dataTable.Columns.Add("Student Name", typeof(String));
dataTable.Columns.Add("Section", typeof(String));

Ahora debemos instanciar un nuevo objeto de la clase DataRow y nombrarlo dtr..

DataRow dtr = dataTable.NewRow();

A continuación, ingresaremos los datos en la columna denominada DataRow..

dtr[0] = "BC210120319";
dtr[1] = "Iftikhar Aslam";
dtr[2] = "BS (CS)";
dataTable.Rows.Add(dtr);
dtr = dataTable.NewRow();
dtr[0] = "BC210203291";
dtr[1] = "Saad Aslam";
dtr[2] = "BS (IT)";
dataTable.Rows.Add(dtr);
dtr = dataTable.NewRow();

En la hoja de cálculo que acabamos de hacer, debe insertar la columna denominada Tabla de datos.

workSheet.InsertDataTable(dataTable, true, 1, 1, true);

En este punto, debe darle un nombre al documento antes de guardarlo como un archivo de Excel.

workBook.SaveToFile(@"E:\DataTableToExcel.xlsx", ExcelVersion.Version2016);

Código fuente completo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using Spire.Xls;

namespace ExportDataTableToExcelBySaad {
  class Program {
    static void Main(string[] args) {
      Workbook workBook = new Workbook();
      workBook.Worksheets.Clear();
      Worksheet workSheet = workBook.Worksheets.Add("DataTableToExcel");
      DataTable dataTable = new DataTable();
      dataTable.Columns.Add("Roll Number", typeof(String));
      dataTable.Columns.Add("Student Name", typeof(String));
      dataTable.Columns.Add("Section", typeof(String));
      DataRow dtr = dataTable.NewRow();
      dtr[0] = "BC210120319";
      dtr[1] = "Iftikhar Aslam";
      dtr[2] = "BS (CS)";
      dataTable.Rows.Add(dtr);
      dtr = dataTable.NewRow();
      dtr[0] = "BC210203291";
      dtr[1] = "Saad Aslam";
      dtr[2] = "BS (IT)";
      dataTable.Rows.Add(dtr);
      dtr = dataTable.NewRow();
      workSheet.InsertDataTable(dataTable, true, 1, 1, true);
      workBook.SaveToFile(@"E:\DataTableToExcel.xlsx", ExcelVersion.Version2016);
    }
  }
}

Producción:

Exportar tabla de datos a Excel

Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Artículo relacionado - Csharp Excel