Como importar e exportar como um DataSet em C# | IronXL

Como Importar & Exportar DataSet/DataTable em C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL converte entre pastas de trabalho do Excel e DataSets com chamadas de método único - use LoadWorkSheetsFromDataSet() para importar DataSets em pastas de trabalho e ToDataSet() para exportar pastas de trabalho como DataSets com mapeamento automático de folha para tabela.

Um DataSet é uma representação de dados em memória contendo várias tabelas relacionadas, relacionamentos e restrições. Usado para trabalhar com dados de bancos de dados, XML e outras fontes. Ao trabalhar com arquivos Excel em C#, DataSet fornecem uma estrutura .NET familiar que se integra com aplicativos orientados a dados.

Um DataTable representa uma única tabela com linhas e colunas dentro de um DataSet. IronXL mapeia automaticamente cada planilha do Excel para um DataTable correspondente, preservando os cabeçalhos de coluna e tipos de dados durante a conversão.

Início Rápido: Exportar Pasta de Trabalho como System.Data.DataSet Instantaneamente

Converter uma pasta de trabalho em um DataSet requer uma chamada de método. Este exemplo exporta sua pasta de trabalho inteira—cada folha como um DataTable—usando ToDataSet com reconhecimento opcional de cabeçalho da primeira linha.

  1. Instale IronXL com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie e execute este trecho de código.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como Carrego um DataSet em uma Pasta de Trabalho?

Use o método estático LoadWorkSheetsFromDataSet para importar um DataSet em uma pasta de trabalho. Este método requer ambos os objetos DataSet e Workbook. Crie primeiro a pasta de trabalho usando o método Create. Passe o objeto DataSet e o objeto workbook para o método.

:path=/static-assets/excel/content-code-examples/how-to/export-dataset-datatable-load.cs
using IronXL;
using System.Data;

// Create dataset
DataSet dataSet = new DataSet();

// Create workbook
WorkBook workBook = WorkBook.Create();

// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
$vbLabelText   $csharpLabel

Cada DataTable dentro do DataSet se torna uma planilha separada. O nome da tabela se torna o nome da planilha, mantendo a organização dos dados. Para múltiplas fontes de dados, combine isso com criação de novas planilhas ou gerenciamento de planilhas existentes.

Aqui está um exemplo abrangente carregando um DataSet com várias tabelas:

using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
$vbLabelText   $csharpLabel

Esta abordagem funciona bem ao exportar dados de bancos de dados SQL ou consolidar dados de múltiplas fontes em formato Excel.

Visite Como Carregar Planilhas Existentes para saber mais sobre a importação de planilhas de vários formatos de arquivo.


Como Exporto uma Pasta de Trabalho como um DataSet?

O método ToDataSet converte a pasta de trabalho em um System.Data.DataSet, onde cada planilha se torna um System.Data.DataTable. Chame este método na pasta de trabalho do Excel para convertê-la em um objeto DataSet. O parâmetro useFirstRowAsColumnNames determina se a primeira linha será usada como nomes de coluna.

:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

IronXL lida automaticamente com a conversão de tipos de dados e mantém a estrutura das planilhas ao exportar para DataSets. Isso ajuda ao integrar dados do Excel com bancos de dados SQL ou usar dados em outros aplicativos .NET.

Exemplo avançado demonstrando exportação de pasta de trabalho e processamento de DataSet:

using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
$vbLabelText   $csharpLabel

O DataSet exportado mantém relacionamentos e restrições definidos no Excel, ideal para trabalhar com estruturas de dados complexas do Excel sem dependências do Excel Interop.

Recursos Adicionais de DataSet/DataTable

IronXL fornece recursos avançados ao trabalhar com DataSet e DataTable:

Lidando com Tipos de Dados

IronXL mapeia inteligentemente tipos de dados durante a conversão de Excel-DataSet. Células numéricas tornam-se tipos numéricos apropriados (int, decimal, double), células de data tornam-se objetos DateTime, células de texto tornam-se strings. Personalize isso configurando formatos de dados de célula antes da conversão.

Otimização de desempenho

IronXL otimiza o uso de memória e a velocidade de processamento para grandes conjuntos de dados. A biblioteca faz streaming de dados de forma eficiente em vez de carregar tudo na memória. Adequado para aplicações empresariais que processam grandes volumes de dados.

Integração com outras funcionalidades

A funcionalidade de DataSet/DataTable integra-se com outros recursos do IronXL:

Visite Como Salvar ou Exportar Planilhas para saber sobre exportação de planilhas para vários formatos de arquivo.

Perguntas frequentes

Como faço para converter uma planilha do Excel em um DataSet em C#?

Com o IronXL, você pode converter uma planilha do Excel em um DataSet usando o método ToDataSet(). Basta chamar WorkBook.ToDataSet(useFirstRowAsColumnNames: true) para exportar toda a sua planilha, onde cada aba se torna um DataTable no DataSet resultante.

Posso importar um DataSet para uma planilha do Excel programaticamente?

Sim, o IronXL fornece o método LoadWorkSheetsFromDataSet() para importar um DataSet para uma pasta de trabalho. Crie uma pasta de trabalho usando WorkBook.Create(), e então passe o DataSet e a pasta de trabalho para este método estático. Cada DataTable se torna uma planilha separada.

O que acontece com os nomes dos DataTables ao importá-los para o Excel?

Ao usar o método LoadWorkSheetsFromDataSet() do IronXL, cada nome de DataTable se torna automaticamente o nome da planilha no Excel, mantendo a organização dos seus dados e facilitando a identificação de diferentes fontes de dados.

A biblioteca preserva os cabeçalhos das colunas durante a conversão do DataSet?

Sim, o IronXL preserva os cabeçalhos de coluna e os tipos de dados durante a conversão entre Excel e DataSets. Ao usar ToDataSet() com useFirstRowAsColumnNames definido como verdadeiro, a primeira linha de cada planilha é reconhecida como cabeçalho de coluna.

Como lidar com várias tabelas ao converter entre Excel e DataSets?

O IronXL mapeia automaticamente cada planilha do Excel para uma DataTable correspondente ao converter para DataSet, e vice-versa. Ao importar um DataSet com várias tabelas, cada DataTable cria uma planilha separada na pasta de trabalho.

Qual é o código mínimo necessário para exportar um arquivo Excel para um DataSet?

O código mínimo para exportar uma planilha do Excel para um DataSet usando o IronXL consiste em apenas uma linha: `DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);` Isso converte toda a sua planilha com mapeamento automático de planilhas para tabelas.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Pronto para começar?
Nuget Downloads 1,890,100 | Versão: 2026.3 acaba de ser lançado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronXl.Excel
executar um exemplo Veja seus dados se transformarem em uma planilha.