Ir para o conteúdo do rodapé
USANDO O IRONXL

Como converter um conjunto de dados para CSV em C#

O artigo a seguir demonstrará como converter um conjunto de dados C# em um arquivo CSV.

IronXL é uma ótima solução para trabalhar com planilhas, seja em formato CSV ou arquivos Excel. IronXL é gratuito para desenvolvimento, fácil de usar e fornece funcionalidades extensas para trabalhar com qualquer tipo de planilha. É seguro e oferece alto desempenho. Antes de prosseguir, vamos ter uma breve introdução ao IronXL.

IronXL

IronXL é uma biblioteca da Iron Software que permite que desenvolvedores C# leiam, gerem e editem Excel (e outros arquivos de planilhas) em aplicativos e sites .NET.

IronXL é uma maneira rápida e fácil de trabalhar com Excel e outros arquivos de planilha em C# e .NET. IronXL funciona bem com .NET Framework, .NET Core e Azure sem a necessidade de Interop do Excel do Office. O IronXL também não requer a instalação do Microsoft Office ou inclui qualquer outra dependência do tipo.

Vamos mergulhar na criação e escrita do código para criar um arquivo CSV para um conjunto de dados.

Criar um novo projeto do Visual Studio

Abra o IDE do Visual Studio; A versão mais recente do Visual Studio é recomendada, mas você pode usar qualquer uma de acordo com sua preferência. Observe que os passos para criar um novo projeto podem diferir de versão para versão.

Como Converter Dataset para CSV em C#, Figura 1: Janela inicial do Visual Studio Janela inicial do Visual Studio

Clique em Criar um Novo Projeto. Uma nova janela será aberta, conforme mostrado abaixo.

Como Converter Dataset para CSV em C#, Figura 2: Criar um novo projeto no Visual Studio Crie um novo projeto no Visual Studio.

Selecione seu modelo de projeto preferido na lista. Clique no botão Avançar, e uma nova janela aparecerá conforme mostrado abaixo.

Como Converter Dataset para CSV em C#, Figura 3: Configurar o projeto recém-criado Configure o projeto recém-criado

Dê um nome ao seu projeto, selecione seu local e pressione o botão Avançar. Uma nova janela será aberta, conforme mostrado abaixo.

Como Converter Dataset para CSV em C#, Figura 4: Selecionar uma versão do .NET Framework Selecione uma versão do .NET Framework

Selecione o .NET Framework de destino. Você pode selecionar qualquer .NET Framework que atenda às suas necessidades, pois o IronXL suporta todos os .NET Framework. Este tutorial usará o .NET 7. Clique no botão Criar, e um novo projeto será criado, como mostrado abaixo.

Como Converter Dataset para CSV em C#, Figura 5: uma nova Aplicação de Console no Visual Studio um novo Aplicativo de Console no Visual Studio

Agora, instale o Pacote NuGet do IronXL para usá-lo nesta aplicação.

Instale o IronXL

Abra o Console do Gerenciador de Pacotes NuGet e insira o seguinte comando.

Install-Package IronXl.Excel

O Pacote NuGet será instalado e pronto para uso, como mostrado abaixo.

Como Converter Dataset para CSV em C#, Figura 6: A instalação do pacote IronXL e suas dependências de pacote A instalação do pacote IronXL e suas dependências de pacote

Agora, vamos escrever algum código para converter um conjunto de dados em um arquivo CSV em C#.

Este exemplo irá povoar dados de um banco de dados do SQL Server. Após obter o conjunto de dados do banco de dados SQL, criaremos um arquivo CSV usando esses dados de entrada.

Crie a Tabela de Dados

O primeiro passo é povoar dados do SQL, mas você pode usar qualquer fonte de dados que preferir.

Este tutorial utiliza os seguintes dados:

Como Converter Dataset para CSV em C#, Figura 7: Criar uma nova base de dados com dados de exemplo Crie um novo banco de dados com dados de amostra

Aqui está o script SQL para criar os dados de amostra:

USE Test_DB;

CREATE TABLE STUDENT_DATA
(
    REG_NUM INT PRIMARY KEY,
    FIRST_NAME VARCHAR(30),
    LAST_NAME VARCHAR(30),
    CLASS VARCHAR(5),
    CONTACT_NUM VARCHAR(15)
);

INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');

O seguinte código C# é usado para exportar a tabela de dados para um arquivo CSV.

using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        foreach (DataRow row in table.Rows)
        {
            ws[$"A{rowCount}"].Value = row[0].ToString();
            ws[$"B{rowCount}"].Value = row[1].ToString();
            ws[$"C{rowCount}"].Value = row[2].ToString();
            ws[$"D{rowCount}"].Value = row[3].ToString();
            ws[$"E{rowCount}"].Value = row[4].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        foreach (DataRow row in table.Rows)
        {
            ws[$"A{rowCount}"].Value = row[0].ToString();
            ws[$"B{rowCount}"].Value = row[1].ToString();
            ws[$"C{rowCount}"].Value = row[2].ToString();
            ws[$"D{rowCount}"].Value = row[3].ToString();
            ws[$"E{rowCount}"].Value = row[4].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
$vbLabelText   $csharpLabel

Explicação do código

  • O método GetData() recupera dados de um banco de dados SQL Server e os retorna como um DataTable.

  • No método Main, um WorkBook é criado usando o IronXL, e os dados são então populados em um WorkSheet.

  • Um loop foreach itera pelas linhas do DataTable, inserindo cada valor em uma nova linha no WorkSheet.

  • Finalmente, o arquivo CSV é salvo usando a função SaveAsCsv fornecida pelo IronXL.

Saída

O arquivo CSV gerado por este programa é o seguinte:

Como Converter Dataset para CSV em C#, Figura 8: O arquivo de saída CSV O arquivo de saída CSV

É claro que o arquivo CSV é gerado corretamente e está alinhado com a entrada fornecida.

Resumo

Este artigo demonstrou como criar um arquivo CSV em C# a partir de um conjunto de dados. A biblioteca também pode ler arquivos CSV usando C#. O conjunto de dados de um banco de dados SQL Server é populado e cria um arquivo CSV em três etapas:

  1. Obtenha dados do SQL Server.
  2. Popule dados em uma tabela de dados.
  3. Crie um arquivo CSV a partir dessa tabela de dados.

É muito fácil criar um arquivo CSV no .NET 7 usando o IronXL, conforme demonstrado acima. O desempenho do programa é excepcional, pois é escrito em .NET 7 com IronXL. O IronXL oferece outros recursos úteis, como criar, ler e manipular arquivos Excel. Para mais detalhes, por favor, visite a documentação oficial.

Além disso, o IronPDF oferece aos desenvolvedores métodos para renderizar documentos PDF em imagens e extrair texto e conteúdo de um PDF. Além disso, o IronPDF também é capaz de renderizar gráficos em PDFs, adicionar códigos de barras, melhorar a segurança com senhas programaticamente.

A versão gratuita do IronXL é usada para fins de desenvolvimento. Para implantar uma aplicação em produção, obtenha uma versão de teste gratuita ou uma licença comercial. O IronXL faz parte do Iron Suite, que consiste em cinco bibliotecas:

  1. IronXL, que é explorado hoje.
  2. IronPDF para gerar, ler e manipular arquivos PDF
  3. IronOCR para trabalhar extraindo texto de imagens
  4. IronBarcode para leitura e geração de código de barras
  5. IronWebScraper para extrair dados estruturados de sites.

Você pode obter todos esses produtos pelo preço de dois se comprados juntos.

Perguntas frequentes

Como posso converter um conjunto de dados C# em um arquivo CSV?

Você pode converter um conjunto de dados C# em um arquivo CSV usando o IronXL. Primeiro, recupere os dados de uma fonte, como um banco de dados SQL Server, e preencha-os em um DataTable. Em seguida, use o IronXL para exportar o DataTable para um arquivo CSV.

Preciso do Microsoft Office para trabalhar com arquivos do Excel no .NET?

Não, você não precisa do Microsoft Office para trabalhar com arquivos do Excel no .NET ao usar o IronXL. O IronXL opera de forma independente, sem exigir dependências do Office ou de interoperabilidade.

Qual a melhor maneira de instalar o IronXL para manipulação de planilhas em .NET?

A melhor maneira de instalar o IronXL para manipulação de planilhas é através do Console do Gerenciador de Pacotes NuGet no Visual Studio. Use o comando: Install-Package IronXl.Excel .

Como o IronXL melhora a produtividade ao trabalhar com planilhas?

O IronXL melhora a produtividade, permitindo que os desenvolvedores leiam, gerem e editem arquivos Excel e CSV de forma rápida e fácil em aplicativos .NET, sem a necessidade de instalações ou dependências de software adicionais.

Posso usar o IronXL para gerar arquivos CSV a partir de qualquer fonte de dados?

Sim, você pode usar o IronXL para gerar arquivos CSV a partir de qualquer fonte de dados. O artigo demonstra isso usando um banco de dados SQL Server para preencher um DataTable, que é então exportado para CSV usando o IronXL.

O IronXL é compatível com as versões mais recentes do .NET?

Sim, o IronXL é compatível com as versões mais recentes do .NET, incluindo o .NET 7, e oferece benefícios de desempenho aprimorados nessas plataformas.

Quais são os principais benefícios de usar o IronXL para tarefas com planilhas?

Entre as principais vantagens de usar o IronXL, destacam-se a capacidade de lidar com planilhas sem o Microsoft Office, o suporte a todas as versões do .NET e a simplicidade na conversão eficiente de conjuntos de dados em arquivos CSV.

O que é o Iron Suite e o que ele inclui?

O Iron Suite é uma coleção de bibliotecas que inclui o IronXL para arquivos Excel, o IronPDF para PDFs, o IronOCR para extração de texto de imagens, o IronBarcode para códigos de barras e o IronWebScraper para extração de dados da web.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me