As planilhas do MS Excel são amplamente utilizadas para manter os dados de pequeno, médio ou grande porte. Em vários casos, as planilhas funcionam como um banco de dados para armazenar os dados do aplicativo. Em tais situações, pode ser necessário ler os dados armazenados nos arquivos do Excel em seus aplicativos da Web ou da área de trabalho. Para esses casos, este artigo aborda como converter dados do Excel em DataTables em C#.

C# Excel para API de conversão de DataTable

Aspose.Cells for .NET é uma biblioteca de classes que permite implementar recursos de automação do Excel dentro dos aplicativos .NET. Além disso, a API permite exportar dados de planilhas do Excel para ADO.NET DataTable em poucos passos. Você pode baixar a API ou instalá-la via NuGet.

PM> Install-Package Aspose.Cells

Converter Excel para DataTable em C#

Pode haver dois cenários possíveis ao exportar dados de planilhas do Excel para DataTables: os dados podem ser fortemente tipados ou não fortemente tipados. Em ambos os casos, você pode executar a conversão do Excel para DataTable adequadamente. Vamos dar uma olhada em como lidar com qualquer um dos cenários mencionados acima.

Converter dados do Excel fortemente tipados em DataTable em C#

Dados fortemente tipados significam que os valores em uma única coluna pertencem a um tipo de dados específico. Para esses casos, você pode exportar dados do Excel para DataTable em C# usando as etapas a seguir.

O exemplo de código a seguir mostra como exportar o Excel para DataTable.

// Crie um fluxo de arquivos contendo o arquivo Excel a ser aberto
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Instanciar um objeto Workbook
//Abrindo o arquivo do Excel por meio do fluxo de arquivos
Workbook workbook = new Workbook(fstream);

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.Worksheets[0];

// Exporte o conteúdo de 2 linhas e 2 colunas a partir da 1ª célula para DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

// Vincular o DataTable com DataGrid
dataGridView1.DataSource = dataTable;

// Feche o fluxo de arquivos para liberar todos os recursos
fstream.Close();

Converter dados do Excel não fortemente tipados em DataTable em C#

Agora, vamos dar uma olhada no outro caso em que os valores na planilha não são fortemente tipados. Isso significa que eles não pertencem a um tipo de dados específico. A seguir estão as etapas para exportar dados do Excel para DataTable neste caso.

O exemplo de código a seguir mostra como exportar dados não fortemente tipados do Excel para DataTable em C#.

// Crie um fluxo de arquivos contendo o arquivo Excel a ser aberto
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// Instanciar um objeto Workbook
//Abrindo o arquivo do Excel por meio do fluxo de arquivos
Workbook workbook = new Workbook(fstream);

// Acesse a primeira planilha no arquivo Excel
Worksheet worksheet = workbook.Worksheets[0];

// Exporte o conteúdo de 2 linhas e 2 colunas a partir da 1ª célula para DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

// Vincular o DataTable com DataGrid
dataGridView1.DataSource = dataTable;

// Feche o fluxo de arquivos para liberar todos os recursos
fstream.Close();

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como exportar ou converter dados do Excel para ADO.NET DataTables usando C#. O tutorial passo a passo e os exemplos de código mostraram como lidar com dados fortemente tipados e não fortemente tipados nas planilhas. Você pode explorar mais sobre a API C# Excel usando documentação.

Veja também