
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#
- Instale a biblioteca IronXL para manipulação de arquivos Excel.
- Carregue a pasta de trabalho e especifique a planilha.
- Selecione o intervalo de células a ser lido.
- 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:
O comando acima instalará o IronXL com todas as suas dependências.

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;Imports IronXLCarregar 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");
}Sub Main(args As String())
' Load an existing Excel workbook
Dim workbook = WorkBook.Load("test_excel.xlsx")
' Retrieve the specified worksheet from the workbook
Dim sheet = workbook.GetWorkSheet("Sheet1")
End SubA 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.

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
Dim range = sheet("A2:G10")
' Iterate over each cell in the range and output its value
For Each item In range
Console.WriteLine(item)
Next itemA 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 loop foreach (var item in range) itera sobre cada célula dentro deste intervalo de células, permitindo um 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()}");Imports System
' Define a range from cell F2 to F42 for statistical analysis
Dim 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: {CInt(Math.Truncate(range.Avg()))}")O código var range = sheet["F2:F42"]; seleciona um intervalo de células de F2 a F42, facilitando a análise estatística de dados de idade. Usando range.Min() e range.Max(), calcula-se eficientemente os valores mínimo e máximo de idade dentro do intervalo especificado, ajudando em insights demográficos.
Além disso, range.Avg() calcula a idade média, oferecendo métricas estatísticas valiosas para interpretação de 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.

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
Dim read_from_single_cell = sheet("B2")
' Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")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 de dados. Isto simplifica o processo de recuperar e exibir valores individuais de células de arquivos Excel.

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)
Dim columnValues = sheet.GetColumn(2) ' 2 is column index
' Iterate over each value in the column and output it
For Each columnValue In columnValues
Console.WriteLine(columnValue)
Next columnValueO 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 loop foreach iterando 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.

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"
Dim columnValues = sheet.GetColumn("C")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)
Dim rowValues = sheet.GetRow(1) ' 1 is row index
' Iterate over each value in the row and output it
For Each rowValue In rowValues
Console.Write(rowValue & " ")
Next rowValueO 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 loop foreach iterando sobre rowValues, cada valor na 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.

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
Dim 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()O código var range = sheet["D2:D14"]; seleciona um intervalo de células de D2 a D14, permitindo a modificação em massa de dados. Ao definir range.Value como "Prefiro Não Dizer", ele atualiza eficientemente o valor do gênero para cada célula dentro do intervalo especificado, minimizando tarefas repetitivas.
O comando subsequente workbook.Save(); assegura o armazenamento persistente dessas alterações, 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()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.

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.

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 bem estruturados e visualmente atraentes.
Artigos relacionados



