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.
Janela inicial do Visual Studio
Clique em Criar um Novo Projeto. Uma nova janela será aberta, conforme mostrado abaixo.
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.
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.
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.
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.
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:
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");
}
}
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL
Friend Class Program
' Method to retrieve data from SQL database and return as DataTable
Public Shared Function GetData() As DataTable
' Define connection string (modify accordingly for your local server)
Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
Dim query As String = "SELECT * FROM STUDENT_DATA"
Try
' Create SQL connection
Using conn As New SqlConnection(connString)
' Create SQL command
Dim cmd As New SqlCommand(query, conn)
conn.Open()
' Create data adapter
Using da As New SqlDataAdapter(cmd)
' Query the database and return the result to a data table
Dim dt As New DataTable()
da.Fill(dt)
Return dt
End Using
End Using
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
Throw
End Try
End Function
Shared Sub Main(ByVal args() As String)
' Retrieve data and store it in a DataTable
Dim table As DataTable = GetData()
' Create a new Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "JOHN"
' Use the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
' Populate the worksheet with data from the DataTable
For Each row As DataRow 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 += 1
Next row
' Save the workbook as a CSV file
wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
End Class
Explicação do código
-
O método
GetData()recupera dados de um banco de dados SQL Server e os retorna como umDataTable. -
No método
Main, umWorkBooké criado usando o IronXL, e os dados são então populados em umWorkSheet. -
Um loop
foreachitera pelas linhas doDataTable, inserindo cada valor em uma nova linha noWorkSheet. - Finalmente, o arquivo CSV é salvo usando a função
SaveAsCsvfornecida pelo IronXL.
Saída
O arquivo CSV gerado por este programa é o seguinte:
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:
- Obtenha dados do SQL Server.
- Popule dados em uma tabela de dados.
- 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:
- IronXL, que é explorado hoje.
- IronPDF para gerar, ler e manipular arquivos PDF
- IronOCR para trabalhar extraindo texto de imagens
- IronBarcode para leitura e geração de código de barras
- 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.



