Las hojas de cálculo de MS Excel se utilizan ampliamente para mantener los datos de tamaño pequeño, mediano o grande. En varios casos, las hojas de cálculo actúan como una base de datos para almacenar los datos de la aplicación. En tales situaciones, es posible que deba leer los datos almacenados en los archivos de Excel desde sus aplicaciones web o de escritorio. Para tales casos, este artículo cubre cómo convertir datos de Excel a DataTables en C#.

API de conversión de C# Excel a DataTable

Aspose.Cells for .NET es una biblioteca de clases que le permite implementar características de automatización de Excel dentro de las aplicaciones .NET. Además, la API le permite exportar datos de hojas de cálculo de Excel a ADO.NET DataTable en unos pocos pasos. Puede descargar la API o instalarla a través de NuGet.

PM> Install-Package Aspose.Cells

Convertir Excel a DataTable en C#

Podría haber dos escenarios posibles al exportar datos de hojas de cálculo de Excel a DataTables: los datos podrían estar fuertemente tipados o no. En ambos casos, puede realizar la conversión de Excel a DataTable en consecuencia. Echemos un vistazo a cómo lidiar con cualquiera de los escenarios mencionados anteriormente.

Convierta datos de Excel fuertemente tipados en DataTable en C#

Los datos fuertemente tipados significan que los valores en una sola columna pertenecen a un tipo de datos en particular. Para tales casos, puede exportar datos de Excel a DataTable en C# siguiendo los siguientes pasos.

El siguiente ejemplo de código muestra cómo exportar Excel a DataTable.

// Cree una secuencia de archivos que contenga el archivo de Excel que se abrirá
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Crear una instancia de un objeto Workbook
//Abrir el archivo de Excel a través de la secuencia de archivos
Workbook workbook = new Workbook(fstream);

// Acceda a la primera hoja de trabajo en el archivo de Excel
Worksheet worksheet = workbook.Worksheets[0];

// Exporte el contenido de 2 filas y 2 columnas a partir de la primera celda a DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

// Vincular el DataTable con DataGrid
dataGridView1.DataSource = dataTable;

// Cierre el flujo de archivos para liberar todos los recursos
fstream.Close();

Convierta datos de Excel no fuertemente tipados en DataTable en C#

Ahora, echemos un vistazo al otro caso cuando los valores en la hoja de trabajo no están fuertemente tipados. Significa que no pertenecen a un tipo de datos en particular. Los siguientes son los pasos para exportar datos de Excel a DataTable en este caso.

El siguiente ejemplo de código muestra cómo exportar datos no fuertemente tipados de Excel a DataTable en C#.

// Cree una secuencia de archivos que contenga el archivo de Excel que se abrirá
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Crear una instancia de un objeto Workbook
//Abrir el archivo de Excel a través de la secuencia de archivos
Workbook workbook = new Workbook(fstream);

// Acceda a la primera hoja de trabajo en el archivo de Excel
Worksheet worksheet = workbook.Worksheets[0];

// Exporte el contenido de 2 filas y 2 columnas a partir de la primera celda a DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

// Vincular el DataTable con DataGrid
dataGridView1.DataSource = dataTable;

// Cierre el flujo de archivos para liberar todos los recursos
fstream.Close();

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a exportar o convertir datos de Excel a tablas de datos de ADO.NET mediante C#. El tutorial paso a paso y los ejemplos de código han mostrado cómo manejar datos fuertemente tipados y no fuertemente tipados en las hojas de trabajo. Puede explorar más sobre la API de C# Excel usando documentación.

Ver también