Como ler um arquivo CSV usando C# (tutorial com exemplo de código)
Este tutorial demonstra como ler um arquivo CSV usando a biblioteca IronXL C# sem instalar interop adicional, de maneira altamente eficiente e eficaz.
Como ler arquivo CSV linha por linha em C#
- Instalar biblioteca C# para ler arquivo CSV linha por linha
- Utilize o método avançado `LoadCSV` para ler o arquivo CSV
- Capture o carregamento de um arquivo inexistente com o método `Exists` em C#
- Converta dados CSV em banco de dados com o método `ToDataTable`
- Use o método `SaveAs` para exportar o arquivo Excel, enquanto os dados CSV são convertidos automaticamente em Excel
How to read CSV Files in C
Você deve primeiro instalar o IronXL antes de usá-lo para ler arquivos CSV em MVC, ASP.NET ou .NET Core. Aqui está um resumo básico do processo.
Selecione o menu Project no Visual Studio, Gerenciar Pacotes do NuGet, Pesquise por IronXL.Excel e Instale.
Instale o pacote IronXL no Gerenciador de Pacotes NuGet
IronXL é uma ótima ferramenta a ser usada quando você precisa ler arquivos CSV em C#. O exemplo de código abaixo mostra que você pode ler um arquivo CSV usando vírgulas ou outro delimitador.
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx")
Dados CSV para este tutorial
O objeto WorkBook é criado. O método LoadCSV do objeto WorkBook é então usado para indicar o nome do arquivo CSV, seu formato e os delimitadores usados no arquivo CSV que está sendo lido, que são armazenados como um array de strings. Vírgulas são utilizadas como delimitadores neste cenário.
Depois disso, um objeto WorkSheet é criado; é aqui que o conteúdo do arquivo CSV será armazenado. O arquivo é então renomeado e armazenado em um novo formato. Os dados do arquivo CSV são então dispostos na planilha em forma de tabela. A saída ficará algo assim:
Dados convertidos em arquivo Excel
CSV parsing in C# .NET
Os CSVs têm vários problemas com a forma como as quebras de linha são tratadas nos campos e como os campos podem estar entre aspas, o que impede que uma técnica simples de divisão de strings funcione Split("'"). Em vez disso, o IronXL oferece personalizar o delimitador usando um parâmetro opcional do método LoadCSV, verifique a documentação da API de LoadCSV para mais detalhes.
C# Records — Reading CSV Data
No exemplo abaixo, o loop foreach é usado para iterar sobre as linhas no arquivo CSV, e o Console é usado para escrever os dados em um registro.
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header
// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
// Iterate through each column in the current row
for (int i = 0; i < dt.Columns.Count; i++)
{
// Output each cell value to the console
Console.Write(row[i] + " ");
}
// New line after each row
Console.WriteLine();
}
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header
// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
// Iterate through each column in the current row
for (int i = 0; i < dt.Columns.Count; i++)
{
// Output each cell value to the console
Console.Write(row[i] + " ");
}
// New line after each row
Console.WriteLine();
}
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Convert the worksheet data into a DataTable
Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header
' Iterate through each row in the DataTable
For Each row As DataRow In dt.Rows
' Iterate through each column in the current row
For i As Integer = 0 To dt.Columns.Count - 1
' Output each cell value to the console
Console.Write(row(i) & " ")
Next i
' New line after each row
Console.WriteLine()
Next row
Acessando dados do arquivo CSV e exibindo no Console
Convertendo uma linha de string de arquivo CSV para formato Excel
O procedimento é simples: carregue um arquivo CSV e salve como um arquivo Excel.
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
Ler e Manipular Arquivos CSV Convertidos usando IronXL
A classe IronXL WorkBook representa uma planilha do Excel e usa esta classe para abrir um arquivo Excel em C#. Os exemplos de código abaixo irão carregar o arquivo Excel desejado em um objeto WorkBook:
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
' Load WorkBook from a .xlsx file
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
Objetos WorkSheet podem ser encontrados em diversos WorkBooks. Estas são as planilhas do documento Excel. Se o workbook tiver planilhas, você pode obtê-las pelo nome fazendo o seguinte:
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open a specific worksheet for reading by its name
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Código para leitura dos valores das células:
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read and output values from a range of cells elegantly
For Each cell In worksheet("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
O exemplo de código a seguir pode atualizar fórmulas ou aplicá-las a células específicas após carregar e ler o workbook e a planilha. O seguinte é o código:
// Set formulas for specific cells
worksheet["A1"].Formula = "Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "Max(C3:C7)";
// Force recalculate all formula values in all sheets
workbook.EvaluateAll();
// Set formulas for specific cells
worksheet["A1"].Formula = "Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "Max(C3:C7)";
// Force recalculate all formula values in all sheets
workbook.EvaluateAll();
' Set formulas for specific cells
worksheet("A1").Formula = "Sum(B8:C12)"
worksheet("B8").Formula = "=C9/C11"
worksheet("G30").Formula = "Max(C3:C7)"
' Force recalculate all formula values in all sheets
workbook.EvaluateAll()
Conclusão e Oferta Especial IronXL
IronXL transforma CSVs em Excel com apenas duas linhas de código, além de processar CSVs em C#.
Sem a necessidade de Interop, usar a API Excel da IronXL é muito fácil. Além disso, IronXL também oferece uma ampla gama de recursos para interagir com níveis de WorkBook, WorkSheet e Células do Excel, como converter entre formatos populares, formatar dados de células, mesclar células, inserir funções matemáticas, e até mesmo gerenciar gráficos e adicionar imagens.
Você pode lançar sem uma marca d'água usando chaves de licença de teste do IronXL.
As licenças começam em $799 e incluem um ano de suporte e atualizações gratuitos.
IronPDF, IronXL, IronOCR, IronBarcode, e o IronWebscraper fazem parte do pacote Iron Software. Iron Software permite que você compre todo o pacote por um preço reduzido. Você pode usar todas essas ferramentas pelo preço de duas.
Esta é definitivamente uma opção que vale a pena explorar.
Perguntas frequentes
Como posso ler um arquivo CSV em C#?
É possível ler um arquivo CSV em C# usando a biblioteca IronXL, empregando o método LoadCSV , que permite carregar os dados CSV em um objeto WorkBook para manipulação posterior.
Qual a melhor maneira de converter dados CSV para o formato Excel em C#?
A melhor maneira de converter dados CSV para o formato Excel em C# é usando o IronXL. Carregue seu arquivo CSV em um objeto WorkBook e use o método SaveAs para salvá-lo como um arquivo Excel.
Como posso manipular arquivos CSV com delimitadores personalizados em C# usando uma biblioteca?
Com o IronXL, você pode manipular arquivos CSV com delimitadores personalizados, especificando o delimitador como um parâmetro opcional no método LoadCSV .
Posso converter dados CSV diretamente para um formato de banco de dados em C#?
Sim, você pode converter dados CSV para um formato de banco de dados em C# usando o IronXL, utilizando o método ToDataTable , que transforma os dados em um objeto DataTable adequado para operações de banco de dados.
Quais métodos estão disponíveis em C# para verificar a existência de arquivos CSV inexistentes?
Em C#, você pode usar o método Exists do IronXL para verificar se um arquivo CSV existe antes de tentar carregá-lo, evitando assim erros relacionados a arquivos inexistentes.
Como posso manipular dados do Excel após convertê-los de CSV em C#?
Após converter o arquivo CSV para Excel em C#, você pode manipular os dados usando os recursos do IronXL, como formatação, mesclagem de células, inserção de funções matemáticas e adição de gráficos ou imagens.
Quais as vantagens que o IronXL oferece para leitura e conversão de arquivos CSV em C#?
O IronXL oferece vantagens como fácil instalação, dispensa de interoperabilidade adicional, suporte para delimitadores personalizados e métodos poderosos para converter e manipular dados CSV no Excel.
Como lidar com caracteres especiais em dados CSV em C#?
O IronXL consegue lidar com caracteres especiais em dados CSV, permitindo que você especifique a codificação e os delimitadores do arquivo ao carregá-lo, garantindo a integridade e a precisão dos dados.
Que tipo de suporte está disponível para usuários do IronXL?
As licenças do IronXL incluem um ano de suporte e atualizações gratuitas, oferecendo assistência e garantindo que você tenha os recursos e correções mais recentes.



