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

Como importar, ler e manipular dados do Excel em C#

StreamReader não pode ler arquivos do Excel porque os formatos XLSX/XLS são estruturas binárias complexas ou XML comprimidas, não texto simples. Use a biblioteca IronXL em vez disso, que fornece WorkBook.Load() para leitura de arquivos e FromStream() para processamento de fluxo de memória sem dependências do Excel Interop.

Muitos desenvolvedores de C# encontram um desafio comum ao tentar ler arquivos de planilhas do Excel: seu confiável StreamReader, que funciona perfeitamente para arquivos de texto, falha misteriosamente com documentos do Excel. Se você tentou ler arquivos do Excel usando StreamReader em C# apenas para ver caracteres embaralhados ou exceções, você não está sozinho. Este tutorial explica porque StreamReader não pode lidar com arquivos do Excel diretamente e demonstra a solução adequada usando IronXL sem Excel Interop.

A confusão geralmente surge porque arquivos CSV, que o Excel pode abrir, funcionam bem com StreamReader. No entanto, arquivos Excel verdadeiros (XLSX, XLS) requerem uma abordagem fundamentalmente diferente. Compreender essa distinção te fará economizar horas de depuração e te levará à ferramenta certa para o trabalho. Para engenheiros DevOps que implantam aplicativos em containers Docker ou ambientes Kubernetes, isso se torna especialmente crítico, pois dependências nativas podem complicar a containerização.

IronXL for .NET página inicial mostrando exemplo de código em C# para leitura de arquivos do Excel sem interop do Microsoft Office, apresentando recursos da biblioteca e estatísticas de download

Por que StreamReader não consegue ler arquivos do Excel?

StreamReader é projetado para arquivos de texto simples, lendo dados de caracteres linha por linha usando uma codificação especificada. Arquivos do Excel, apesar de sua aparência de planilha, são na verdade estruturas binárias complexas ou XML comprimidas em ZIP que StreamReader não consegue interpretar. Arquivos XLSX modernos seguem o padrão Open XML do Office, enquanto arquivos XLS antigos usam um formato binário proprietário.

static void Main(string[] args)
{
 // This code will NOT work - demonstrates the problem
 using (StreamReader reader = new StreamReader("ProductData.xlsx"))
 {
    string content = reader.ReadLine(); // Attempts to read Excel as text
    Console.WriteLine(content); // Outputs garbled binary data
 }
}
static void Main(string[] args)
{
 // This code will NOT work - demonstrates the problem
 using (StreamReader reader = new StreamReader("ProductData.xlsx"))
 {
    string content = reader.ReadLine(); // Attempts to read Excel as text
    Console.WriteLine(content); // Outputs garbled binary data
 }
}
Sub Main(ByVal args As String())
    ' This code will NOT work - demonstrates the problem
    Using reader As New StreamReader("ProductData.xlsx")
        Dim content As String = reader.ReadLine() ' Attempts to read Excel as text
        Console.WriteLine(content) ' Outputs garbled binary data
    End Using
End Sub
$vbLabelText   $csharpLabel

Quando você executa este trecho de código, em vez de ver os dados da sua planilha, você encontrará dados binários, como "PK♥♦" ou caracteres semelhantes. Isso acontece porque arquivos XLSX são arquivos ZIP contendo múltiplos arquivos XML, enquanto arquivos XLS usam um formato binário proprietário. StreamReader espera texto simples e tenta interpretar essas estruturas complexas como caracteres, resultando em uma saída sem sentido. Para aplicações containerizadas, tentar usar bibliotecas nativas do Excel ou COM Interop requereria a instalação do Microsoft Office no seu contêiner, aumentando drasticamente o tamanho e a complexidade da imagem.

O que acontece quando StreamReader tenta processar arquivos do Excel?

O exemplo a seguir mostra um arquivo Excel típico contendo dados de produtos que queremos processar. Observe como os dados estruturados da planilha aparecem limpos e organizados quando visualizados no Excel:

Planilha do Excel mostrando uma tabela de dados de produtos com colunas para nomes de produtos (Laptop, Mouse, Teclado, Monitor, Fones de ouvido), preços, e valores VERDADEIRO/FALSO nas colunas de A a D

Por que a saída mostra caracteres corrompidos?

Quando StreamReader tenta processar este arquivo do Excel, a saída do console revela o problema subjacente. Em vez de dados legíveis, você vê conteúdo binário porque a estrutura do arquivo não pode ser interpretada como texto:

Console de depuração do Visual Studio mostrando a execução bem-sucedida do programa com código de saída 0 e um prompt para pressionar qualquer tecla para fechar a janela

Arquivos Excel modernos (XLSX) contêm múltiplos componentes: planilhas, estilos, strings compartilhadas e relacionamentos, todos empacotados juntos. Essa complexidade requer bibliotecas especializadas que compreendam a estrutura do arquivo Excel, o que nos leva ao IronXL. A biblioteca lida com todas essas complexidades internamente enquanto fornece uma API simples, tornando-a ideal para pipelines de implantação automatizados onde a intervenção manual não é possível.

Como Ler Arquivos Excel com IronXL?

IronXL fornece uma solução direta para ler arquivos Excel em C#. Ao contrário de StreamReader, IronXL entende a estrutura interna do Excel e fornece métodos intuitivos para acessar seus dados. A biblioteca suporta Windows, Linux, macOS e contêineres Docker, tornando-a perfeita para aplicações modernas e multiplataforma. Para equipes DevOps, a arquitetura sem dependências do IronXL significa que não há bibliotecas nativas ou componentes COM para gerenciar durante a implantação.

Diagrama de suporte multiplataforma mostrando compatibilidade .NET em várias versões, sistemas operacionais, ambientes de desenvolvimento e plataformas de nuvem, incluindo Windows, Linux, macOS, Docker, Azure e AWS

Primeiro, instale IronXL via o Gerenciador de Pacotes NuGet:

Install-Package IronXL.Excel

Saída do terminal mostrando a instalação bem-sucedida do pacote IronXL.Excel e suas dependências via Console do Gerenciador de Pacotes no Visual Studio

Aqui está como ler um arquivo Excel corretamente:

using IronXL;
// Load the Excel file
WorkBook workbook = WorkBook.Load("sample.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Read specific cell values
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Read a range of cells
foreach (var cell in worksheet["A1:C5"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
using IronXL;
// Load the Excel file
WorkBook workbook = WorkBook.Load("sample.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Read specific cell values
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Read a range of cells
foreach (var cell in worksheet["A1:C5"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
Imports IronXL

' Load the Excel file
Dim workbook As WorkBook = WorkBook.Load("sample.xlsx")
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Read specific cell values
Dim cellValue As String = worksheet("A1").StringValue
Console.WriteLine($"Cell A1 contains: {cellValue}")
' Read a range of cells
For Each cell In worksheet("A1:C5")
    Console.WriteLine($"{cell.AddressString}: {cell.Text}")
Next
$vbLabelText   $csharpLabel

Este código carrega seu arquivo Excel com sucesso e fornece acesso limpo aos valores das células. O método WorkBook.Load detecta automaticamente o formato do arquivo (XLSX, XLS, XLSM, CSV) e lida com toda a análise complexa internamente. Você pode acessar células usando a notação familiar do Excel como "A1" ou intervalos como "A1:C5", tornando o código intuitivo para qualquer pessoa familiarizada com o Excel.

Para implantações containerizadas, você pode facilmente incluir endpoints de verificação de integridade que verificam as capacidades de processamento do Excel:

// Health check endpoint for containerized apps
public async Task<IActionResult> HealthCheck()
{
    try
    {
        // Test Excel functionality
        using var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        var sheet = workbook.CreateWorkSheet("HealthCheck");
        sheet["A1"].Value = DateTime.UtcNow;

        // Convert to byte array for validation
        var bytes = workbook.ToByteArray();
        return Ok(new { 
            status = "healthy", 
            excelSupport = true,
            timestamp = DateTime.UtcNow 
        });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { 
            status = "unhealthy", 
            error = ex.Message 
        });
    }
}
// Health check endpoint for containerized apps
public async Task<IActionResult> HealthCheck()
{
    try
    {
        // Test Excel functionality
        using var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        var sheet = workbook.CreateWorkSheet("HealthCheck");
        sheet["A1"].Value = DateTime.UtcNow;

        // Convert to byte array for validation
        var bytes = workbook.ToByteArray();
        return Ok(new { 
            status = "healthy", 
            excelSupport = true,
            timestamp = DateTime.UtcNow 
        });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { 
            status = "unhealthy", 
            error = ex.Message 
        });
    }
}
Imports System
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc

' Health check endpoint for containerized apps
Public Async Function HealthCheck() As Task(Of IActionResult)
    Try
        ' Test Excel functionality
        Using workbook = WorkBook.Create(ExcelFileFormat.XLSX)
            Dim sheet = workbook.CreateWorkSheet("HealthCheck")
            sheet("A1").Value = DateTime.UtcNow

            ' Convert to byte array for validation
            Dim bytes = workbook.ToByteArray()
            Return Ok(New With {
                .status = "healthy",
                .excelSupport = True,
                .timestamp = DateTime.UtcNow
            })
        End Using
    Catch ex As Exception
        Return StatusCode(503, New With {
            .status = "unhealthy",
            .error = ex.Message
        })
    End Try
End Function
$vbLabelText   $csharpLabel

Como Ler Excel a Partir de Fluxos de Memória?

Aplicações do mundo real frequentemente precisam processar arquivos Excel de fluxos ao invés de arquivos de disco. Cenários comuns incluem lidar com uploads na web, recuperar arquivos de bancos de dados ou processar dados de armazenamento em nuvem como AWS S3 ou Azure Blob Storage. IronXL lida com essas situações de forma tranquila:

using IronXL;
using System.IO;
// Read Excel from a memory stream
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");
using (MemoryStream stream = new MemoryStream(fileBytes))
{
    WorkBook workbook = WorkBook.FromStream(stream);
    WorkSheet worksheet = workbook.DefaultWorkSheet;
    // Process the data
    int rowCount = worksheet.RowCount;
    Console.WriteLine($"The worksheet has {rowCount} rows");
    // Read all data into a DataTable
    var dataTable = worksheet.ToDataTable(false);
    // Display DataTable row count 
    Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");
}
using IronXL;
using System.IO;
// Read Excel from a memory stream
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");
using (MemoryStream stream = new MemoryStream(fileBytes))
{
    WorkBook workbook = WorkBook.FromStream(stream);
    WorkSheet worksheet = workbook.DefaultWorkSheet;
    // Process the data
    int rowCount = worksheet.RowCount;
    Console.WriteLine($"The worksheet has {rowCount} rows");
    // Read all data into a DataTable
    var dataTable = worksheet.ToDataTable(false);
    // Display DataTable row count 
    Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");
}
Imports IronXL
Imports System.IO

' Read Excel from a memory stream
Dim fileBytes As Byte() = File.ReadAllBytes("ProductData.xlsx")
Using stream As New MemoryStream(fileBytes)
    Dim workbook As WorkBook = WorkBook.FromStream(stream)
    Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
    ' Process the data
    Dim rowCount As Integer = worksheet.RowCount
    Console.WriteLine($"The worksheet has {rowCount} rows")
    ' Read all data into a DataTable
    Dim dataTable = worksheet.ToDataTable(False)
    ' Display DataTable row count 
    Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows")
End Using
$vbLabelText   $csharpLabel

O método FromStream aceita qualquer tipo de fluxo, seja MemoryStream, FileStream ou fluxo de rede. Essa flexibilidade permite processar arquivos Excel de várias fontes sem salvá-los no disco primeiro. O exemplo também demonstra converter dados de planilha em um DataTable, que se integra perfeitamente com bancos de dados e cenários de vinculação de dados. Para arquiteturas de microsserviços, essa abordagem baseada em fluxo minimiza o I/O de disco e melhora o desempenho.

Que resultados o processamento de fluxos de memória produz?

Console de depuração do Visual Studio mostrando saída da leitura de dados do Excel, exibindo 'A planilha tem 5 linhas' e 'Carregado 5 linhas de dados'

Quando devo usar o remetente de objeto em cenários de leitura de Excel?

Em casos onde este código é usado em programação orientada a eventos (por exemplo, lidando com um botão de upload de arquivo no Windows Forms ou ASP.NET), a assinatura do método frequentemente inclui parâmetros como objeto sender e EventArgs e. Este contexto garante que a lógica de processamento do Excel se integre corretamente em eventos de interface de usuário ou serviço. Para APIs conteinerizadas, você pode processar uploads diretamente de pedidos HTTP:

[HttpPost("upload")]
public async Task<IActionResult> ProcessExcelUpload(IFormFile file)
{
    if (file == null || file.Length == 0)
        return BadRequest("No file uploaded");

    using var stream = new MemoryStream();
    await file.CopyToAsync(stream);
    stream.Position = 0;

    var workbook = WorkBook.FromStream(stream);
    var worksheet = workbook.DefaultWorkSheet;

    // Process and return results
    var data = worksheet.ToDataSet();
    return Ok(new { 
        sheets = workbook.WorkSheets.Count,
        rows = worksheet.RowCount,
        processed = DateTime.UtcNow
    });
}
[HttpPost("upload")]
public async Task<IActionResult> ProcessExcelUpload(IFormFile file)
{
    if (file == null || file.Length == 0)
        return BadRequest("No file uploaded");

    using var stream = new MemoryStream();
    await file.CopyToAsync(stream);
    stream.Position = 0;

    var workbook = WorkBook.FromStream(stream);
    var worksheet = workbook.DefaultWorkSheet;

    // Process and return results
    var data = worksheet.ToDataSet();
    return Ok(new { 
        sheets = workbook.WorkSheets.Count,
        rows = worksheet.RowCount,
        processed = DateTime.UtcNow
    });
}
Imports System.IO
Imports Microsoft.AspNetCore.Mvc

<HttpPost("upload")>
Public Async Function ProcessExcelUpload(file As IFormFile) As Task(Of IActionResult)
    If file Is Nothing OrElse file.Length = 0 Then
        Return BadRequest("No file uploaded")
    End If

    Using stream As New MemoryStream()
        Await file.CopyToAsync(stream)
        stream.Position = 0

        Dim workbook = WorkBook.FromStream(stream)
        Dim worksheet = workbook.DefaultWorkSheet

        ' Process and return results
        Dim data = worksheet.ToDataSet()
        Return Ok(New With {
            .sheets = workbook.WorkSheets.Count,
            .rows = worksheet.RowCount,
            .processed = DateTime.UtcNow
        })
    End Using
End Function
$vbLabelText   $csharpLabel

Visão geral dos recursos de uma biblioteca de manipulação do Excel para C# mostrando seis categorias principais: Criar, Salvar e Exportar, Editar Workbooks, Trabalhar com Dados, Proteger seus Workbooks, e listagens detalhadas de funcionalidades em cada categoria

Como Converter Entre Excel e CSV?

Enquanto StreamReader pode lidar com arquivos CSV, você frequentemente precisa converter entre formatos Excel e CSV. IronXL torna essa conversão simples, o que é particularmente útil para pipelines ETL e cenários de integração de dados comuns em fluxos de trabalho DevOps:

using IronXL;
// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("data.xlsx");
workbook.SaveAsCsv("output.csv");
// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("input.csv");
csvWorkbook.SaveAs("output.xlsx");
// Export specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("worksheet1.csv");
using IronXL;
// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("data.xlsx");
workbook.SaveAsCsv("output.csv");
// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("input.csv");
csvWorkbook.SaveAs("output.xlsx");
// Export specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("worksheet1.csv");
Imports IronXL

' Load an Excel file and save as CSV
Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
workbook.SaveAsCsv("output.csv")

' Load a CSV file and save as Excel
Dim csvWorkbook As WorkBook = WorkBook.LoadCSV("input.csv")
csvWorkbook.SaveAs("output.xlsx")

' Export specific worksheet to CSV
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
worksheet.SaveAsCsv("worksheet1.csv")
$vbLabelText   $csharpLabel

Essas conversões preservam seus dados enquanto mudam o formato do arquivo. Ao converter Excel para CSV, IronXL achata a primeira planilha por padrão, mas você pode especificar qual planilha exportar. Converter de CSV para Excel cria uma planilha formatada adequadamente que preserva tipos de dados e permite futuras formatações e adições de fórmulas.

Para pipelines de dados automatizados, você também pode exportar para formatos JSON ou XML:

// Export Excel to multiple formats for data pipelines
var workbook = WorkBook.Load("report.xlsx");

// Export to JSON for API responses
string jsonData = workbook.ToJson();

// Export to HTML for web display
workbook.SaveAsHtml("report.html");

// Export to XML for integration systems
workbook.SaveAsXml("report.xml");

// Export specific range to DataTable for database insertion
var dataTable = workbook.DefaultWorkSheet["A1:D10"].ToDataTable();
// Export Excel to multiple formats for data pipelines
var workbook = WorkBook.Load("report.xlsx");

// Export to JSON for API responses
string jsonData = workbook.ToJson();

// Export to HTML for web display
workbook.SaveAsHtml("report.html");

// Export to XML for integration systems
workbook.SaveAsXml("report.xml");

// Export specific range to DataTable for database insertion
var dataTable = workbook.DefaultWorkSheet["A1:D10"].ToDataTable();
' Export Excel to multiple formats for data pipelines
Dim workbook = WorkBook.Load("report.xlsx")

' Export to JSON for API responses
Dim jsonData As String = workbook.ToJson()

' Export to HTML for web display
workbook.SaveAsHtml("report.html")

' Export to XML for integration systems
workbook.SaveAsXml("report.xml")

' Export specific range to DataTable for database insertion
Dim dataTable = workbook.DefaultWorkSheet("A1:D10").ToDataTable()
$vbLabelText   $csharpLabel

Práticas Recomendadas para Implementação em Contêiner

Para engenheiros DevOps que implantam aplicações de processamento do Excel, o IronXL oferece várias vantagens. Aqui está um Dockerfile pronto para produção otimizado para processamento de Excel:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

# Install any required system fonts for Excel rendering
RUN apt-get update && apt-get install -y \
    fontconfig \
    libfreetype6 \
    && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["YourApp.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet build -c Release -o /app/build

FROM build AS publish
RUN dotnet publish -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

# Set environment variables for IronXL
ENV IRONXL_LICENSE_KEY=${IRONXL_LICENSE_KEY}
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

ENTRYPOINT ["dotnet", "YourApp.dll"]

Este Dockerfile garante que seu aplicativo de processamento de Excel funcione perfeitamente em contêineres com poucas dependências. O licenciamento é tratado através de variáveis de ambiente, tornando fácil gerenciar em diferentes ambientes de implantação.

Quais São os Próximos Passos para o Processamento de Excel em C#?

A incapacidade de StreamReader processar arquivos do Excel decorre da diferença fundamental entre texto simples e a estrutura complexa de arquivos do Excel. Enquanto StreamReader funciona perfeitamente para CSV e outros formatos de texto, verdadeiros arquivos do Excel exigem uma biblioteca especializada como o IronXL que entende as estruturas binárias e XML dentro.

IronXL oferece uma solução abrangente com sua API intuitiva, suporte extenso a formatos e capacidades de processamento de fluxo impecáveis. Seja você desenvolvendo aplicativos web, software de desktop, ou serviços em nuvem, IronXL lida com arquivos Excel de forma confiável em todas as plataformas. O suporte da biblioteca a formatação condicional, gráficos, fórmulas, e recursos avançados do Excel a torna uma solução completa para aplicativos empresariais.

Para equipes DevOps, a arquitetura compatível com containers do IronXL, dependências mínimas do sistema, e características de desempenho sólido tornam-no uma escolha ideal para aplicações modernas nativas de nuvem. A biblioteca suporta escalabilidade horizontal, funciona perfeitamente em pods Kubernetes, e se integra bem com pipelines CI/CD.

IronXL licensing page showing four pricing tiers (Lite, Plus, Professional, and Unlimited) with a toggle between IronXL and Iron Suite options, displaying perpetual license prices ranging from $999 to $3,999

Pronto para começar a trabalhar adequadamente com arquivos Excel? Baixe o teste gratuito do IronXL que melhor se adequa às necessidades do seu projeto. A biblioteca oferece opções de licenciamento flexíveis, incluindo desenvolvimento, produção, e implantação de staging, com opções para ambientes conteinerizados e aplicativos nativos em nuvem.

Perguntas frequentes

Por que o StreamReader não consegue lidar diretamente com arquivos Excel em C#?

O StreamReader foi projetado para arquivos de texto e não oferece suporte ao formato binário de arquivos do Excel. Por isso, você pode encontrar caracteres ilegíveis ou exceções ao usá-lo para ler documentos do Excel. Em vez disso, recomenda-se o uso de uma biblioteca como o IronXL para o processamento adequado de arquivos do Excel.

Qual é a maneira recomendada de importar dados do Excel em C#?

A maneira recomendada de importar dados do Excel em C# é usando o IronXL. Ele permite que os desenvolvedores leiam e manipulem arquivos do Excel sem a necessidade de interoperabilidade com o Excel, oferecendo uma solução mais simples e eficiente.

Posso manipular arquivos do Excel em C# sem usar o Excel Interop?

Sim, você pode manipular arquivos do Excel em C# sem o Excel Interop usando o IronXL. Ele oferece uma maneira simples de trabalhar com documentos do Excel diretamente em sua aplicação C#.

Quais são os benefícios de usar o IronXL para manipular arquivos do Excel?

O IronXL oferece diversas vantagens, incluindo a capacidade de ler e gravar arquivos do Excel sem a necessidade do Microsoft Excel, suporte para vários formatos do Excel e uma API poderosa que simplifica as tarefas de manipulação de dados.

O IronXL suporta a leitura de arquivos Excel com tipos de dados complexos?

Sim, o IronXL suporta a leitura de arquivos Excel com tipos de dados complexos, permitindo que você manipule diversas estruturas de dados de forma eficiente em seus aplicativos C#.

Como o IronXL melhora o processo de trabalho com arquivos Excel em C#?

O IronXL simplifica o processo de trabalho com arquivos do Excel, fornecendo uma interface fácil de usar que elimina a necessidade de interoperabilidade com o Excel, reduz a complexidade do código e melhora o desempenho.

É possível ler e gravar arquivos Excel em diferentes formatos usando o IronXL?

Sim, o IronXL suporta vários formatos de arquivo do Excel, como XLSX, XLS, CSV e outros, permitindo que você leia e grave arquivos em diversos formatos sem esforço.

O IronXL consegue lidar com arquivos grandes do Excel de forma eficiente?

O IronXL foi projetado para lidar com arquivos Excel grandes de forma eficiente, oferecendo desempenho robusto e minimizando o uso de memória durante as operações com arquivos.

O que torna o IronXL uma escolha adequada para desenvolvedores C# que trabalham com arquivos Excel?

IronXL é uma escolha adequada para desenvolvedores C# porque oferece um conjunto abrangente de recursos para ler, escrever e manipular arquivos do Excel com facilidade, sem exigir o Microsoft Excel ou dependências complexas de interoperabilidade.

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

Equipe de Suporte Iron

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim