Como ler dados de um arquivo CSV e armazená-los em um banco de dados em C#
No mundo digital de hoje, lidar com dados de maneira eficiente é uma tarefa importante. Um requisito comum no desenvolvimento de software é ler dados de um arquivo CSV e armazená-los em um banco de dados. Este tutorial cobre os passos para ler dados de um arquivo CSV e armazená-los em um banco de dados SQL Server usando C#, especificamente utilizando a biblioteca IronXL. Este guia é projetado para iniciantes e será explicado de forma simples e envolvente.
Entendendo o básico
O que é um Arquivo CSV?
Um arquivo CSV (Valores Separados por Vírgulas) é um arquivo de texto simples que contém dados separados por vírgulas. É um formato popular para transferência de dados devido à sua simplicidade e compatibilidade com várias aplicações, como o Excel.
O Papel do SQL Server e dos Bancos de Dados
O SQL Server é um sistema de gestão de banco de dados da Microsoft. Ele é usado para armazenar e gerenciar dados de maneira estruturada. No nosso caso, vamos armazenar os dados do CSV em uma tabela do SQL Server.
Introdução ao IronXL
O IronXL é uma biblioteca Excel adaptada para aplicações .NET, especificamente projetada para permitir que os desenvolvedores leiam, gerem e editem arquivos Excel sem precisar do Microsoft Office Interop. Esta biblioteca se destaca por sua compatibilidade com várias versões e plataformas .NET, incluindo .NET Core, .NET Standard e .NET Framework, bem como por seu suporte a diferentes sistemas operacionais, como Windows, Linux e macOS. É uma biblioteca poderosa para importar dados, especialmente para lidar com arquivos CSV.
How to Read and Store Data From CSV Files in C#
- Crie um programa de console C# no Visual Studio.
- Instale a biblioteca CSV usando o Gerenciador de Pacotes NuGet.
- Carregue o arquivo CSV no programa utilizando a biblioteca.
- Crie uma conexão com o banco de dados.
- Leia o conteúdo do arquivo CSV usando a biblioteca.
- Copie esse conteúdo para o banco de dados usando o método
SqlBulkCopy.
Aqui está um exemplo de trecho de código:
using System;
using System.Data;
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
using System.Globalization;
using System.IO;
using CsvHelper;
namespace CsvReader
{
class Program
{
static void Main(string[] args)
{
string csvPath = @"path\to\your\csv\file.csv";
using (var reader = new StreamReader(csvPath))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
// Mapping the CSV data to the corresponding model
var records = csv.GetRecords<YourModel>();
using (var sqlBulkCopy = new SqlBulkCopy("your_connection_string"))
{
sqlBulkCopy.DestinationTableName = "YourTableName";
sqlBulkCopy.WriteToServer(records.AsDataReader());
}
Console.WriteLine("Data imported successfully!");
}
}
}
// Define your model that maps to the CSV columns
public class YourModel
{
// Define properties here representing the CSV columns
}
}
using System;
using System.Data;
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
using System.Globalization;
using System.IO;
using CsvHelper;
namespace CsvReader
{
class Program
{
static void Main(string[] args)
{
string csvPath = @"path\to\your\csv\file.csv";
using (var reader = new StreamReader(csvPath))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
// Mapping the CSV data to the corresponding model
var records = csv.GetRecords<YourModel>();
using (var sqlBulkCopy = new SqlBulkCopy("your_connection_string"))
{
sqlBulkCopy.DestinationTableName = "YourTableName";
sqlBulkCopy.WriteToServer(records.AsDataReader());
}
Console.WriteLine("Data imported successfully!");
}
}
}
// Define your model that maps to the CSV columns
public class YourModel
{
// Define properties here representing the CSV columns
}
}
Imports System
Imports System.Data
Imports System.Data.SqlClient ' For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
Imports System.Globalization
Imports System.IO
Imports CsvHelper
Namespace CsvReader
Class Program
Shared Sub Main(args As String())
Dim csvPath As String = "path\to\your\csv\file.csv"
Using reader As New StreamReader(csvPath)
Using csv As New CsvReader(reader, CultureInfo.InvariantCulture)
' Mapping the CSV data to the corresponding model
Dim records = csv.GetRecords(Of YourModel)()
Using sqlBulkCopy As New SqlBulkCopy("your_connection_string")
sqlBulkCopy.DestinationTableName = "YourTableName"
sqlBulkCopy.WriteToServer(records.AsDataReader())
End Using
Console.WriteLine("Data imported successfully!")
End Using
End Using
End Sub
End Class
' Define your model that maps to the CSV columns
Public Class YourModel
' Define properties here representing the CSV columns
End Class
End Namespace
Certifique-se de substituir "path\to\your\csv\file.csv" pelo caminho real do seu arquivo CSV, YourModel pelo modelo que representa seus dados CSV, "your_connection_string" pela sua string de conexão com o banco de dados e "YourTableName" pelo nome da sua tabela do banco de dados.
Preparando o ambiente
Pré-requisitos
- Visual Studio: Certifique-se de ter o Visual Studio instalado.
- SQL Server: Você deve ter o SQL Server instalado e acessível.
- Instalação do IronXL: Instale o IronXL executando o seguinte comando do NuGet:
dotnet add package IronXL.Excel
Certifique-se de executar esses comandos no diretório do projeto onde você deseja instalar o IronXL.
Criando uma Tabela no SQL Server
Antes de importar dados, crie uma tabela de destino no seu banco de dados SQL Server. Esta tabela armazenará os dados do CSV.
CREATE TABLE YourTableName (
Column1 DataType,
Column2 DataType,
...
);
Substitua YourTableName, Column1, Column2 e DataType pelos seus dados específicos.
Guia Passo a Passo para Importar Dados CSV
- Primeiro, certifique-se de ter um arquivo CSV contendo os dados que deseja importar.
- Crie um novo projeto de aplicação de console C# no Visual Studio.
-
Instale o pacote CsvHelper do NuGet para leitura de arquivos CSV. Você pode fazer isso abrindo o Console do Gerenciador de Pacotes NuGet no Visual Studio e executando o seguinte comando:
Install-Package CsvHelperInstall-Package CsvHelperSHELL -
Adicione as instruções usando necessárias no topo do seu arquivo de código C#:
using System; using System.IO; using System.Globalization; using CsvHelper; using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient insteadusing System; using System.IO; using System.Globalization; using CsvHelper; using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient insteadImports System Imports System.IO Imports System.Globalization Imports CsvHelper Imports System.Data.SqlClient ' For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead$vbLabelText $csharpLabel -
No seu código, especifique o caminho para o seu arquivo CSV. Por exemplo:
string csvFilePath = @"C:\path\to\your\csv\file.csv";string csvFilePath = @"C:\path\to\your\csv\file.csv";Dim csvFilePath As String = "C:\path\to\your\csv\file.csv"$vbLabelText $csharpLabelCertifique-se de substituir
C:\path\to\your\csv\file.csvpelo caminho real do seu arquivo CSV. -
Crie uma nova instância da classe
StreamReaderpara ler o arquivo CSV:using (var reader = new StreamReader(csvFilePath)) { // code goes here }using (var reader = new StreamReader(csvFilePath)) { // code goes here }Using reader = New StreamReader(csvFilePath) ' code goes here End Using$vbLabelText $csharpLabel -
Crie uma nova instância da classe
CsvReader, passando o objetoStreamReader:using (var reader = new StreamReader(csvFilePath)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { // code goes here }using (var reader = new StreamReader(csvFilePath)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { // code goes here }Using reader = New StreamReader(csvFilePath) Using csv = New CsvReader(reader, CultureInfo.InvariantCulture) ' code goes here End Using End Using$vbLabelText $csharpLabel -
Opcionalmente, configure o
CsvReadercom as configurações necessárias, passando um objetoCsvConfigurationpara o seu construtor. Por exemplo:var config = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = true, }; using var csv = new CsvReader(reader, config);var config = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = true, }; using var csv = new CsvReader(reader, config);Imports System.Globalization Imports CsvHelper Dim config As New CsvConfiguration(CultureInfo.InvariantCulture) With { .HasHeaderRecord = True } Using csv As New CsvReader(reader, config) ' Use csv here End Using$vbLabelText $csharpLabel -
Use o método
GetRecords<t>()do objetoCsvReaderpara ler os dados CSV em uma coleção de objetos. Substitua<t>pelo tipo de objeto que representa cada registro no arquivo CSV. Por exemplo:var records = csv.GetRecords<YourModel>();var records = csv.GetRecords<YourModel>();Dim records = csv.GetRecords(Of YourModel)()$vbLabelText $csharpLabelCertifique-se de substituir
YourModelpelo nome real da sua classe de modelo. -
Itere sobre os registros e realize qualquer processamento ou validação necessária:
foreach (var record in records) { // Process each record as needed }foreach (var record in records) { // Process each record as needed }For Each record In records ' Process each record as needed Next record$vbLabelText $csharpLabel - Opcionalmente, estabeleça uma conexão com o seu banco de dados SQL Server usando ADO.NET ou uma ferramenta ORM como o Entity Framework.
- Insira cada registro no banco de dados usando o mecanismo de acesso ao banco de dados escolhido. Por exemplo, se você estiver usando ADO.NET, poderá aproveitar a classe
SqlBulkCopypara inserir dados em massa de forma eficiente. - Lide com quaisquer exceções que possam ocorrer durante o processo de importação e forneça mensagens de erro apropriadas ou registros de log.
- Teste seu aplicativo executando-o e verificando se os dados CSV são importados com sucesso em seu banco de dados.
É isso! Agora você importou com sucesso dados CSV para seu banco de dados SQL Server usando C#.
Passo 1: Lendo o Arquivo CSV
Ao iniciar a tarefa de importar dados de um arquivo CSV, o primeiro passo crucial é ler os dados com precisão. Cada linha em um arquivo CSV normalmente representa um registro de dados, e cada registro consiste em um ou mais campos, separados por vírgulas.
Em seguida, utilizamos a biblioteca IronXL para manipular o arquivo CSV. Para ler o arquivo CSV usando o IronXL, você usará suas classes WorkBook e WorkSheet. A classe WorkBook representa uma planilha inteira, que pode ser um arquivo Excel ou, no nosso caso, um arquivo CSV. Quando você carrega o caminho do arquivo CSV em um objeto WorkBook, o IronXL trata o arquivo CSV como uma planilha/tabela de dados.
using IronXL;
using System.Data;
public class CSVReader
{
// Reads a CSV file and converts it to a DataTable
public DataTable ReadCSV(string filePath)
{
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert to DataTable for easier processing
DataTable dataTable = sheet.ToDataTable(true); // Set to 'true' if your CSV has a header row
return dataTable;
}
}
using IronXL;
using System.Data;
public class CSVReader
{
// Reads a CSV file and converts it to a DataTable
public DataTable ReadCSV(string filePath)
{
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert to DataTable for easier processing
DataTable dataTable = sheet.ToDataTable(true); // Set to 'true' if your CSV has a header row
return dataTable;
}
}
Imports IronXL
Imports System.Data
Public Class CSVReader
' Reads a CSV file and converts it to a DataTable
Public Function ReadCSV(ByVal filePath As String) As DataTable
Dim workbook As WorkBook = WorkBook.Load(filePath)
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert to DataTable for easier processing
Dim dataTable As DataTable = sheet.ToDataTable(True) ' Set to 'true' if your CSV has a header row
Return dataTable
End Function
End Class
Passo 2: Estabelecendo uma Conexão com o Banco de Dados
Estabelecer uma conexão com seu banco de dados SQL Server é uma etapa fundamental no processo de armazenamento dos seus dados CSV. Esta etapa envolve a configuração de um link de comunicação entre seu aplicativo e o servidor de banco de dados. Uma conexão bem-sucedida é crucial porque, sem ela, transferir dados para o banco de dados seria impossível.
Esta etapa foca em criar e abrir uma conexão usando uma string de conexão em C#. A string de conexão é um componente vital, pois contém as informações necessárias para estabelecer a conexão. É como uma chave que destranca a porta do seu banco de dados.
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
public class DatabaseConnector
{
// Connection string to connect to the database
private string connectionString = "your_connection_string_here";
public SqlConnection ConnectToDatabase()
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
return connection;
}
}
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
public class DatabaseConnector
{
// Connection string to connect to the database
private string connectionString = "your_connection_string_here";
public SqlConnection ConnectToDatabase()
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
return connection;
}
}
Imports System.Data.SqlClient ' For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
Public Class DatabaseConnector
' Connection string to connect to the database
Private connectionString As String = "your_connection_string_here"
Public Function ConnectToDatabase() As SqlConnection
Dim connection As New SqlConnection(connectionString)
connection.Open()
Return connection
End Function
End Class
A variável connectionString contém todos os detalhes necessários para conectar-se ao seu servidor SQL. Normalmente inclui o nome do servidor, nome do banco de dados, ID do usuário e senha. Um exemplo de string de conexão é assim: Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;. É essencial substituir esses placeholders pelos detalhes reais do seu servidor.
Passo 3: Armazenando Dados no Banco de Dados
Tendo estabelecido uma conexão com o banco de dados SQL Server, o próximo passo crítico é armazenar os dados CSV no banco de dados. Esta etapa envolve transferir os dados que você leu e processou para sua tabela no SQL Server. É uma parte crucial do processo de manipulação de dados, pois envolve a migração real de dados de um arquivo local para um servidor de banco de dados.
Nesta etapa, vamos nos concentrar em como os dados CSV, agora armazenados em um DataTable, são transferidos para o banco de dados SQL Server. Usamos uma combinação de recursos do C# e do SQL Server para realizar esta tarefa de forma eficiente.
using System;
using System.Data;
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
public class DataImporter
{
public void ImportData(DataTable dataTable)
{
using (SqlConnection connection = new DatabaseConnector().ConnectToDatabase())
{
// Check if the table exists and create it if it does not.
string tableName = "CSVData"; // Use a valid SQL table name format
string checkTable = $"IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}') BEGIN ";
string createTable = "CREATE TABLE " + tableName + " (";
for (int i = 0; i < dataTable.Columns.Count; i++)
{
createTable += $"[{dataTable.Columns[i].ColumnName}] NVARCHAR(MAX)";
if (i < dataTable.Columns.Count - 1)
createTable += ", ";
}
createTable += ") END";
SqlCommand createTableCommand = new SqlCommand(checkTable + createTable, connection);
createTableCommand.ExecuteNonQuery();
// Now we use SqlBulkCopy to import the data
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = tableName;
try
{
bulkCopy.WriteToServer(dataTable);
Console.WriteLine("Data imported successfully!");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
using System;
using System.Data;
using System.Data.SqlClient; // For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
public class DataImporter
{
public void ImportData(DataTable dataTable)
{
using (SqlConnection connection = new DatabaseConnector().ConnectToDatabase())
{
// Check if the table exists and create it if it does not.
string tableName = "CSVData"; // Use a valid SQL table name format
string checkTable = $"IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}') BEGIN ";
string createTable = "CREATE TABLE " + tableName + " (";
for (int i = 0; i < dataTable.Columns.Count; i++)
{
createTable += $"[{dataTable.Columns[i].ColumnName}] NVARCHAR(MAX)";
if (i < dataTable.Columns.Count - 1)
createTable += ", ";
}
createTable += ") END";
SqlCommand createTableCommand = new SqlCommand(checkTable + createTable, connection);
createTableCommand.ExecuteNonQuery();
// Now we use SqlBulkCopy to import the data
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = tableName;
try
{
bulkCopy.WriteToServer(dataTable);
Console.WriteLine("Data imported successfully!");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
Imports System
Imports System.Data
Imports System.Data.SqlClient ' For .NET Core/.NET 5+, use Microsoft.Data.SqlClient instead
Public Class DataImporter
Public Sub ImportData(dataTable As DataTable)
Using connection As SqlConnection = New DatabaseConnector().ConnectToDatabase()
' Check if the table exists and create it if it does not.
Dim tableName As String = "CSVData" ' Use a valid SQL table name format
Dim checkTable As String = $"IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}') BEGIN "
Dim createTable As String = "CREATE TABLE " & tableName & " ("
For i As Integer = 0 To dataTable.Columns.Count - 1
createTable &= $"[{dataTable.Columns(i).ColumnName}] NVARCHAR(MAX)"
If i < dataTable.Columns.Count - 1 Then
createTable &= ", "
End If
Next
createTable &= ") END"
Dim createTableCommand As New SqlCommand(checkTable & createTable, connection)
createTableCommand.ExecuteNonQuery()
' Now we use SqlBulkCopy to import the data
Using bulkCopy As New SqlBulkCopy(connection)
bulkCopy.DestinationTableName = tableName
Try
bulkCopy.WriteToServer(dataTable)
Console.WriteLine("Data imported successfully!")
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Using
End Sub
End Class
Começa por abrir uma ligação à base de dados SQL Server utilizando a classe DatabaseConnector, garantindo um caminho para as transações de dados. O método verifica a existência da tabela chamada 'CSVData' dentro do banco de dados.
Se a tabela não for encontrada, ele procede para criá-la. O esquema da tabela é construído com base no esquema DataTable passado para o método, com todas as colunas definidas como NVARCHAR(MAX) para acomodar quaisquer dados de texto. Esta é uma abordagem genérica e pode necessitar de refinamento para corresponder mais de perto aos tipos de dados específicos.
Depois disso, um comando SQL é formulado e executado para verificar a existência da tabela ou criá-la. Isso garante que a operação de cópia em massa subsequente tenha uma tabela de destino pronta para inserção de dados. Com a tabela pronta, a classe SqlBulkCopy é utilizada para transferir dados do DataTable diretamente para a tabela do SQL Server. Esta operação é projetada para transferências de dados em massa de alto desempenho, tornando-a adequada para lidar com grandes volumes de dados de maneira eficiente.
Passo 4: Colocando Tudo Junto
Após trabalhar diligentemente nos passos anteriores de ler dados CSV, estabelecer uma conexão com o banco de dados e preparar a transferência de dados, chegamos à etapa final e crucial: integrar esses componentes individuais em um processo coeso.
Essa integração é feita no método Main do seu aplicativo C#, onde tudo se junta, permitindo a execução da importação de dados do arquivo CSV para o banco de dados SQL Server.
class Program
{
static void Main(string[] args)
{
string filePath = "path_to_your_csv_file.csv";
CSVReader reader = new CSVReader();
DataTable dataTable = reader.ReadCSV(filePath);
DataImporter importer = new DataImporter();
importer.ImportData(dataTable);
Console.WriteLine("Data imported successfully!");
}
}
class Program
{
static void Main(string[] args)
{
string filePath = "path_to_your_csv_file.csv";
CSVReader reader = new CSVReader();
DataTable dataTable = reader.ReadCSV(filePath);
DataImporter importer = new DataImporter();
importer.ImportData(dataTable);
Console.WriteLine("Data imported successfully!");
}
}
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim filePath As String = "path_to_your_csv_file.csv"
Dim reader As New CSVReader()
Dim dataTable As DataTable = reader.ReadCSV(filePath)
Dim importer As New DataImporter()
importer.ImportData(dataTable)
Console.WriteLine("Data imported successfully!")
End Sub
End Class
Substitua path_to_your_csv_file.csv pelo caminho do seu arquivo CSV.
Executando o Projeto
Uma vez que você execute o projeto, verá a seguinte saída. As mensagens de sucesso representam que todas as operações foram executadas com sucesso e os dados foram copiados para o banco de dados.
Data imported successfully!
Agora, você pode abrir o SQL Server Management Studio (SSMS) e verificar a tabela no banco de dados. Você verá os seguintes dados na tabela.
Conclusão
Este tutorial orientou você pelo processo de leitura de dados de um arquivo CSV e armazenamento em um banco de dados SQL Server usando C#. Seguindo estes passos e utilizando a biblioteca IronXL, você pode gerenciar dados CSV de forma eficiente em suas aplicações C#.
A IronXL oferece uma versão de teste gratuita para os usuários experimentarem seus recursos antes de se comprometerem com uma compra. Este teste totalmente funcional permite que os usuários em potencial testem e avaliem o produto em um ambiente real sem marcas d'água em produção. Após o período de avaliação, se você decidir continuar usando o IronXL para seus projetos, a licença do produto começará a partir de $799.
Perguntas frequentes
Como posso ler dados de um arquivo CSV em C#?
É possível ler dados de um arquivo CSV em C# usando a biblioteca IronXL. A IronXL fornece as classes `WorkBook` e `WorkSheet`, que permitem carregar e manipular arquivos CSV como se fossem planilhas do Excel.
Quais são os passos para armazenar dados CSV em um banco de dados SQL Server usando C#?
Para armazenar dados CSV em um banco de dados SQL Server usando C#, primeiro leia o CSV usando o IronXL, depois carregue os dados em um `DataTable` e use o `SqlBulkCopy` para inserir os dados de forma eficiente em uma tabela do SQL Server.
Como faço para instalar o IronXL para usar no meu projeto C#?
Você pode instalar o IronXL em seu projeto C# usando o Gerenciador de Pacotes NuGet no Visual Studio. Procure por 'IronXL' no Gerenciador de Pacotes NuGet e adicione-o ao seu projeto.
Qual é a principal vantagem de usar o IronXL para manipular arquivos CSV em C#?
A principal vantagem de usar o IronXL para lidar com arquivos CSV em C# é sua capacidade de gerenciar e manipular arquivos CSV e Excel de forma integrada em aplicativos .NET, oferecendo compatibilidade com diversas versões do .NET e sistemas operacionais.
Posso usar o IronXL para lidar com arquivos Excel, assim como com arquivos CSV?
Sim, o IronXL foi projetado para lidar com arquivos Excel e CSV, tornando-se uma ferramenta versátil para gerenciar dados de planilhas em aplicativos .NET.
O que devo fazer se encontrar erros ao usar o IronXL para ler arquivos CSV?
Se você encontrar erros ao usar o IronXL para ler arquivos CSV, verifique se o arquivo CSV está formatado corretamente e se o IronXL está instalado corretamente em seu projeto. Você pode consultar a documentação do IronXL para obter dicas de solução de problemas.
Como posso testar a funcionalidade do IronXL antes de efetuar a compra?
A IronXL oferece um período de teste gratuito e totalmente funcional, permitindo que você teste e avalie o produto sem restrições em um ambiente de produção.
Quais são os pré-requisitos para usar o IronXL para armazenar dados CSV em um banco de dados?
Os pré-requisitos incluem ter o Visual Studio instalado, acesso ao SQL Server e o IronXL instalado via NuGet. Você também precisa configurar uma tabela no SQL Server para armazenar os dados CSV.



