Neste artigo, você aprenderá como criar arquivos Excel XLS/XLSX programaticamente em C# sem instalar o MS Office.
As planilhas hoje em dia se tornaram uma parte essencial de manter, organizar e analisar os dados. Planilhas, como o MS Excel, são capazes de fazer cálculos e classificar, gerar gráficos ou tabelas, criar orçamentos e realizar muitas outras tarefas de contabilidade ou análise de dados. Como as soluções automatizadas estão cada vez mais presentes nos negócios, a tendência de criar e manipular documentos do Excel (XLS/XLSX) surgiu e cresce a um ritmo enorme. Este caso de uso levantou a necessidade de ter uma solução de automação do Excel.
De acordo com o cenário mencionado acima, este artigo abrangente tem como objetivo mostrar alguns recursos básicos para automação do Excel em aplicativos C# .NET.
- API de automação do Excel C#
- Crie arquivos Excel XLS ou XLSX dinamicamente usando C#
- Gravar dados no arquivo Excel existente usando C#
- Crie tabelas ou gráficos em um arquivo do Excel usando C#
- Criar uma tabela em um arquivo do Excel usando C#
API C# para criar arquivos do Excel
Para trabalhar com documentos do Excel, usaremos Aspose.Cells for .NET que é uma API poderosa para criar, ler e manipular documentos de planilha incluindo arquivos XLS e XLSX. Você pode baixar ou instalar a API usando uma das seguintes maneiras:
Usando o Gerenciador de Pacotes NuGet
Usando o Console do Gerenciador de Pacotes
PM> Install-Package Aspose.Cells
Crie um Excel XLS ou XLSX em C#
Um arquivo do Excel também é conhecido como uma pasta de trabalho que é composta por uma ou várias planilhas contendo as linhas e colunas para armazenar os dados. Assim, uma pasta de trabalho atua como o contêiner das planilhas em um arquivo do Excel. Portanto, para criar um arquivo do Excel, você primeiro criará uma pasta de trabalho e, em seguida, as planilhas dentro dessa pasta de trabalho. A seguir estão as etapas para criar um arquivo do Excel usando Aspose.Cells para .NET.
- Crie uma instância da classe Workbook.
- Acesse a primeira planilha (criada por padrão) da pasta de trabalho.
- Acesse a(s) célula(s) desejada(s) da planilha e coloque o valor na(s) célula(s).
- Salve a pasta de trabalho como um arquivo XLS ou XLSX.
O exemplo de código a seguir mostra como criar um arquivo XLSX do Excel usando C#.
// Instanciar um objeto Workbook que representa o arquivo do Excel.
Workbook wb = new Workbook();
// Quando você cria uma nova pasta de trabalho, uma "Planilha1" padrão é adicionada à pasta de trabalho.
Worksheet sheet = wb.Worksheets[0];
// Acesse a célula "A1" na planilha.
Cell cell = sheet.Cells["A1"];
// Insira o "Olá Mundo!" texto na célula "A1".
cell.PutValue("Hello World!");
// Salve o Excel como arquivo .xlsx.
wb.Save("Excel.xlsx", SaveFormat.Xlsx);
Resultado
Gravar dados em um arquivo XLSX do Excel em C#
Caso você queira editar e gravar dados em um arquivo Excel existente, também poderá fazê-lo de maneira semelhante. Basta carregar o documento de planilha Excel de origem usando o objeto Workbook e acessar as planilhas e células desejadas. A seguir estão as etapas para editar um arquivo Excel existente.
- Abra o arquivo do Excel em um objeto FileStream.
- Crie uma instância de Workbook e inicialize-a com o objeto FileStream.
- Acesse as planilhas e células usando as classes Worksheet e Cell respectivamente.
- Salve a pasta de trabalho como um arquivo .xlsx do Excel.
O exemplo de código a seguir mostra como editar e gravar dados em um arquivo XLSX do Excel existente em C#.
// Instanciar um objeto Workbook que representa o arquivo do Excel.
Workbook wb = new Workbook("Excel.xlsx");
// Acesse "Planilha1" da pasta de trabalho.
Worksheet sheet = wb.Worksheets[0];
// Acesse a célula "A1" na planilha.
Cell cell = sheet.Cells["A1"];
// Insira o "Olá Mundo!" texto na célula "A1".
cell.PutValue("The cell's value is updated.");
// Salve o arquivo do Excel como .xlsx.
wb.Save("Excel_updated.xlsx", SaveFormat.Xlsx);
Criar gráficos ou gráficos no arquivo XLSX do Excel usando C#
As planilhas do Excel fornecem uma boa maneira de analisar ou apresentar os dados visualmente usando os gráficos e tabelas. Aspose.Cells para .NET fornece um conjunto completo de classes para criar e manipular uma variedade de gráficos em planilhas do Excel onde cada classe é usada para realizar algumas tarefas específicas.
Para criar os gráficos em um arquivo Excel, você terá que seguir os seguintes passos:
- Adicione alguns dados (para serem usados como fonte de dados) na planilha acessando suas células.
- Adicione um novo objeto de gráfico à planilha usando a coleção Worksheet.Charts passando o tipo de gráfico usando a enumeração ChartType.
- Obtenha o gráfico recém-criado da coleção em um objeto Chart.
- Especifique o intervalo das células para fornecer a fonte de dados ao objeto gráfico.
- Salve a pasta de trabalho como um arquivo .xlsx do Excel.
O exemplo de código a seguir mostra como criar um gráfico em um arquivo XLSX do Excel em C#.
// Instanciar um objeto Workbook que representa o arquivo do Excel.
Workbook wb = new Workbook();
// Adicione uma nova planilha ao objeto Excel.
int sheetIndex = wb.Worksheets.Add();
// Obtenha a referência da planilha recém-adicionada passando seu índice de planilha.
Worksheet worksheet = wb.Worksheets[sheetIndex];
// Adicione valores fictícios às células.
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);
// Adicione um gráfico à planilha.
int chartIndex = worksheet.Charts.Add(Charts.ChartType.Pyramid, 5, 0, 15, 5);
// Acesse a instância do gráfico recém-adicionado.
Charts.Chart chart = worksheet.Charts[chartIndex];
// Adicione SeriesCollection (fonte de dados do gráfico) ao gráfico variando da célula "A1" a "B3".
chart.NSeries.Add("A1:B3", true);
// Salve o arquivo Excel.
wb.Save("Excel_Chart.xlsx", SaveFormat.Xlsx);
Resultado
Saiba mais sobre como criar gráficos em planilhas do Excel usando C#.
Criar uma tabela no arquivo XLSX do Excel em C#
Você também pode criar uma tabela a partir do intervalo de células em uma planilha do Excel e adicionar uma linha para o total (soma, contagem etc.) na tabela. A seguir estão as etapas para criar uma tabela em um arquivo Excel (XLSX) usando Aspose.Cells para .NET:
- Carregue uma pasta de trabalho do Excel ou crie uma nova usando a classe Workbook.
- Adicione dados às células da planilha.
- Adicione um novo ListObject à planilha.
- Defina a propriedade ListObject.ShowTotals como true.
- Calcule o total e salve a pasta de trabalho como um arquivo .xlsx do Excel.
O exemplo de código a seguir mostra como criar uma tabela na planilha do Excel em C#.
// Instanciar um objeto Workbook que representa o arquivo do Excel.
Workbook wb = new Workbook();
// Pegue a primeira planilha.
Worksheet sheet = wb.Worksheets[0];
// Obtendo a coleção de células da planilha
Cells cells = sheet.Cells;
// Configurando o valor para as células
Aspose.Cells.Cell cell = cells["A1"];
cell.PutValue("Employee");
cell = cells["B1"];
cell.PutValue("Quarter");
cell = cells["C1"];
cell.PutValue("Product");
cell = cells["D1"];
cell.PutValue("Continent");
cell = cells["E1"];
cell.PutValue("Country");
cell = cells["F1"];
cell.PutValue("Sale");
cell = cells["A2"];
cell.PutValue("David");
cell = cells["A3"];
cell.PutValue("David");
cell = cells["A4"];
cell.PutValue("David");
cell = cells["A5"];
cell.PutValue("David");
cell = cells["A6"];
cell.PutValue("James");
cell = cells["B2"];
cell.PutValue(1);
cell = cells["B3"];
cell.PutValue(2);
cell = cells["B4"];
cell.PutValue(3);
cell = cells["B5"];
cell.PutValue(4);
cell = cells["B6"];
cell.PutValue(1);
cell = cells["C2"];
cell.PutValue("Maxilaku");
cell = cells["C3"];
cell.PutValue("Maxilaku");
cell = cells["C4"];
cell.PutValue("Chai");
cell = cells["C5"];
cell.PutValue("Maxilaku");
cell = cells["C6"];
cell.PutValue("Chang");
cell = cells["D2"];
cell.PutValue("Asia");
cell = cells["D3"];
cell.PutValue("Asia");
cell = cells["D4"];
cell.PutValue("Asia");
cell = cells["D5"];
cell.PutValue("Asia");
cell = cells["D6"];
cell.PutValue("Europe");
cell = cells["E2"];
cell.PutValue("China");
cell = cells["E3"];
cell.PutValue("India");
cell = cells["E4"];
cell.PutValue("Korea");
cell = cells["E5"];
cell.PutValue("India");
cell = cells["E6"];
cell.PutValue("France");
cell = cells["F2"];
cell.PutValue(2000);
cell = cells["F3"];
cell.PutValue(500);
cell = cells["F4"];
cell.PutValue(1200);
cell = cells["F5"];
cell.PutValue(1500);
cell = cells["F6"];
cell.PutValue(500);
// Adicionando um novo objeto de lista à planilha
Tables.ListObject listObject = sheet.ListObjects[sheet.ListObjects.Add("A1", "F6", true)];
// Adicionando estilo padrão à tabela
listObject.TableStyleType = Tables.TableStyleType.TableStyleMedium10;
// Mostrar total
listObject.ShowTotals = true;
// Defina o tipo de cálculo do campo Trimestre
listObject.ListColumns[1].TotalsCalculation = Tables.TotalsCalculation.Count;
// Salve o arquivo Excel.
wb.Save("Excel_Table.xlsx", SaveFormat.Xlsx);
Resultado
Saiba mais sobre como trabalhar com tabelas em planilhas do Excel usando C#.
Conclusão
Neste artigo, você aprendeu como criar arquivos do Excel do zero usando C#. Além disso, você viu como inserir dados em planilhas, gerar gráficos e inserir tabelas em arquivos do Excel. Você pode dar uma olhada na documentação do Aspose.Cells para .NET para aprender os recursos avançados para manipulação de arquivos do Excel em C#.