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

Como gerenciar intervalos do Excel em C#

Trabalhar com arquivos Excel programaticamente pode melhorar significativamente a eficiência e as capacidades de automação de suas aplicações em C#. Seja gerando relatórios, processando dados ou criando planilhas complexas dinamicamente, dominar a manipulação de arquivos Excel é crucial. Neste tutorial, vamos focar em trabalhar com intervalos do Excel usando IronXL. Vamos abordar como escrever, ler e manipular intervalos dentro de um arquivo Excel.

How to Read Excel Ranges in C#

  1. Instale a biblioteca IronXL para manipulação de arquivos Excel.
  2. Carregue a pasta de trabalho e especifique a planilha.
  3. Selecione o intervalo de células a ser lido.
  4. Extraia e leia os dados do intervalo especificado.

O que é IronXL?

IronXL é uma biblioteca abrangente para C# que simplifica o trabalho com arquivos Excel, oferecendo uma gama de recursos para integração e manipulação de dados de planilhas. Seus recursos incluem leitura, escrita e modificação de arquivos Excel sem a necessidade de instalação do Microsoft Excel, permitindo compatibilidade entre plataformas.

IronXL facilita a extração de dados de células específicas, intervalos ou planilhas inteiras, juntamente com funcionalidades avançadas como formatação, estilização e formatação condicional. Com suporte para cálculos, fórmulas e análise estatística, IronXL capacita desenvolvedores a lidar eficientemente com operações de Excel programaticamente, tornando-se uma ferramenta indispensável para automatizar tarefas centradas em dados dentro de aplicativos C#.

Getting Started with Excel Range of cells in C#

Primeiro de tudo, precisamos instalar a Biblioteca IronXL em nosso Aplicativo.

Instalar o Pacote IronXL NuGet

Você pode instalar o IronXL através do Gerenciador de Pacotes NuGet com o seguinte comando:

Install-Package IronXl.Excel

O comando acima instalará o IronXL com todas as suas dependências.

Como Gerenciar Faixas de Excel em C#: Figura 1

Adicionar Namespace

Adicione o seguinte namespace no topo da classe Program.cs, ou onde quer que você queira usar os métodos do IronXL.

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Carregar Pasta de Trabalho do Excel

O primeiro passo é carregar a pasta de trabalho do Excel. O seguinte código carregará a pasta de trabalho do Excel em nossa aplicação.

static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
$vbLabelText   $csharpLabel

A primeira linha carrega uma pasta de trabalho do Excel existente do arquivo chamado "test_excel.xlsx". A segunda linha recupera a planilha chamada "Sheet1" da pasta de trabalho carregada.

Estarei usando o seguinte arquivo Excel ao longo deste tutorial.

Como Gerenciar Faixas de Excel em C#: Figura 2

Lendo Dados de um Intervalo

Agora, vamos ler dados de intervalos de células especificados.

// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
$vbLabelText   $csharpLabel

A primeira linha seleciona um endereço de intervalo específico (A2 a G10) na planilha, permitindo que você trabalhe com várias células do Excel simultaneamente. O foreach (var item in range) loop itera sobre cada célula dentro deste intervalo de células, permitindo o processamento eficiente de dados.

Usando Console.WriteLine(item);, o código imprime o valor de cada célula no console, facilitando a revisão do conteúdo do intervalo. Esta abordagem simplifica o manuseio de dados e melhora a legibilidade do código.

Usar Fórmulas de Excel em Intervalo

Vamos selecionar um intervalo específico e implementar algumas fórmulas de Excel.

// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
$vbLabelText   $csharpLabel

O código var range = sheet["F2:F42"]; seleciona um intervalo de células que vai de F2 a F42, facilitando a análise estatística de dados de idade. Utilizando range.Min() e range.Max(), calcula eficientemente os valores mínimos e máximos de idade dentro do intervalo especificado, auxiliando em insights demográficos.

Adicionalmente, range.Avg() calcula a idade média, oferecendo valiosas métricas estatísticas para a interpretação dos dados. Esta abordagem simplifica as tarefas de análise de dados, proporcionando acesso rápido a informações estatísticas essenciais para uma tomada de decisão informada.

Como Gerenciar Faixas de Excel em C#: Figura 3

Lendo Dados de uma Única Célula

Vamos ler dados de uma única célula.

// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
$vbLabelText   $csharpLabel

O código var read_from_single_cell = sheet["B2"]; recupera o valor armazenado na célula B2 da planilha. Usando esta abordagem, você pode acessar facilmente valores específicos de células dentro do arquivo Excel.

Com Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");, o código imprime o valor recuperado das células de referência no console, facilitando a verificação e depuração dos dados. Isto simplifica o processo de recuperar e exibir valores individuais de células de arquivos Excel.

Como Gerenciar Faixas de Excel em C#: Figura 4

Lendo Dados de uma Coluna Inteira

Vamos Ler Dados de uma coluna inteira usando Índice.

// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
$vbLabelText   $csharpLabel

O código var columnValues = sheet.GetColumn(2); recupera todos os valores da coluna localizada no índice 2 (coluna C) na planilha. Isso permite acessar com eficiência todos os valores dentro de uma coluna específica da planilha do Excel.

Através do foreach loop que itera sobre columnValues, cada valor na coluna é impresso no console usando Console.WriteLine(columnValue);. Esta abordagem facilita o processamento e a exibição de dados em formato de coluna a partir de arquivos do Excel, simplificando as tarefas de análise de dados.

Como Gerenciar Faixas de Excel em C#: Figura 5

Alternativamente, também podemos ler dados de uma coluna usando um Nome de Coluna em vez de um índice. Considere o seguinte exemplo:

// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
$vbLabelText   $csharpLabel

Dessa forma, podemos especificar várias colunas.

Lendo Dados de Uma Linha Inteira

Vamos ler dados de uma linha inteira usando números de linha.

// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
$vbLabelText   $csharpLabel

O código var rowValues = sheet.GetRow(1); recupera todos os valores de uma única linha localizada no índice 1 (Linha 2) na planilha, permitindo acesso eficiente a dados específicos da linha. Através do foreach loop que itera sobre rowValues, cada valor da linha é impresso no console usando Console.Write(rowValue + " ");.

Esta abordagem simplifica a extração e exibição de dados de linha de arquivos Excel, auxiliando em tarefas de análise e geração de relatórios. Dessa forma, podemos ler valores de várias células sem especificação de intervalo.

Como Gerenciar Faixas de Excel em C#: Figura 6

Escrevendo Dados em Célula ou Intervalo

Podemos escrever dados tanto em célula quanto em intervalo. Primeiramente, vamos escrever dados em um intervalo.

// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
$vbLabelText   $csharpLabel

O código var range = sheet["D2:D14"]; seleciona um intervalo que vai da célula D2 à D14, permitindo modificação em massa de dados. Ao definir range.Value para "Prefiro Não Dizer", atualiza eficientemente o valor de gênero para cada célula dentro do intervalo especificado, minimizando tarefas repetitivas.

O comando subsequente workbook.Save(); garante o armazenamento persistente dessas mudanças, mantendo a consistência e integridade dos dados. Esta abordagem simplifica atualizações em lote e garante uniformidade em várias células, melhorando a eficiência na gestão de dados.

Agora, vamos escrever dados em uma célula específica.

// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
$vbLabelText   $csharpLabel

O código sheet["B2"].Value = "John"; atribui diretamente o valor "John" à célula B2 na planilha Excel, oferecendo um método conciso e direto para atualizar valores de células específicas. Esta abordagem simplifica o processo de modificação de conteúdos individuais de células, melhorando a legibilidade e eficiência do código.

Como Gerenciar Faixas de Excel em C#: Figura 7 - C# Excel Range

Conclusão

Em conclusão, dominar operações de intervalo no Excel em C# usando IronXL melhora significativamente a eficiência e capacidade de automação de aplicações, facilitando tarefas como processamento de dados, geração de relatórios e criação dinâmica de planilhas.

Com os recursos poderosos do IronXL para leitura, escrita e manipulação de arquivos Excel, os desenvolvedores podem agilizar processos de manejo de dados e aproveitar funcionalidades avançadas como fórmulas, formatação e análise estatística. Além disso, o IronXL oferece um teste gratuito, garantindo flexibilidade e escalabilidade para diversas necessidades de projeto.

Perguntas frequentes

Como posso começar a manipular intervalos do Excel em C#?

Para começar a manipular intervalos do Excel em C#, instale a biblioteca IronXL através do Gerenciador de Pacotes NuGet usando o comando: Install-Package IronXl.Excel . Em seguida, você poderá começar a carregar planilhas do Excel e trabalhar com intervalos usando a API abrangente do IronXL.

Como faço para carregar uma planilha do Excel usando o IronXL?

Você pode carregar uma planilha do Excel no IronXL com o método WorkBook.Load , passando o nome do arquivo como argumento, por exemplo: var workbook = WorkBook.Load('test_excel.xlsx'); .

Quais métodos estão disponíveis para ler um intervalo específico de células no IronXL?

No IronXL, você pode ler um intervalo específico de células definindo o intervalo usando uma sintaxe como sheet['A2:G10'] e iterando sobre ele para acessar o valor de cada célula.

Como posso realizar análises estatísticas em dados dentro de um intervalo do Excel?

Usando o IronXL, você pode realizar análises estatísticas selecionando um intervalo e aplicando métodos como range.Min() , range.Max() e range.Avg() para calcular os valores mínimo, máximo e médio, respectivamente.

Qual é o processo para escrever dados em uma célula específica usando o IronXL?

Para escrever dados em uma célula específica no IronXL, atribua um valor diretamente à célula, por exemplo: sheet['B2'].Value = 'John'; e, em seguida, salve a pasta de trabalho para que as alterações sejam mantidas.

É possível ler uma coluna inteira de dados sem especificar um intervalo no IronXL?

Sim, o IronXL permite que você leia uma coluna inteira usando sheet.GetColumn(index) ou sheet.GetColumn('C') , possibilitando a recuperação de dados usando um índice ou um nome de coluna.

Como faço para extrair dados de uma linha inteira usando o IronXL?

Para extrair dados de uma linha inteira no IronXL, use sheet.GetRow(index) e itere sobre os valores recuperados para acessar os dados.

Quais recursos avançados o IronXL oferece para manipulação do Excel?

IronXL oferece recursos avançados, como formatação, estilização, formatação condicional e suporte para cálculos e fórmulas, aprimorando as capacidades de manipulação de arquivos Excel em aplicativos C#.

É possível experimentar o IronXL antes de comprar?

Sim, o IronXL oferece um período de teste gratuito, que permite aos desenvolvedores explorar suas funcionalidades e determinar sua adequação aos seus projetos sem qualquer custo inicial.

Como o IronXL pode aprimorar a automação em aplicações C#?

O IronXL aprimora a automação em aplicativos C# ao permitir a manipulação programática perfeita de arquivos do Excel, o que é essencial para tarefas como processamento de dados, geração de relatórios e criação de planilhas dinâmicas, tudo sem a necessidade de instalar o Microsoft Excel.

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