C# Criar, ler ou atualizar documentos Excel

2023-10-31 03:29:16

A planilha do Excel é um formato de arquivo amplamente utilizado que permite aos usuários organizar, analisar e apresentar dados em formato tabular. A capacidade de interagir programaticamente com arquivos do Excel é altamente valiosa, pois permite a automação e integração da funcionalidade do Excel em aplicativos de software. Esse recurso é particularmente útil ao trabalhar com grandes conjuntos de dados, realizar cálculos complexos ou quando os dados precisam ser gerados ou atualizados dinamicamente. Neste artigo você aprenderá como crie, leia ou atualize documentos Excel em C# e VB.NET usando Spire.XLS for .NET.

Instale o Spire.XLS for .NET

Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.XLS for .NET como referências em seu projeto .NET. Os arquivos DLL podem ser baixados deste link ou instalados via NuGet.

PM> Install-Package Spire.XLS

Crie um arquivo Excel em C#, VB.NET

Spire.XLS for .NET oferece uma variedade de classes e interfaces que você pode usar para criar e editar documentos Excel. Aqui está uma lista de classes, propriedades e métodos importantes envolvidos neste artigo.

Membro Descrição
Aula de apostila Representa um modelo de pasta de trabalho do Excel.
Método Workbook.Worksheets.Add() Adiciona uma planilha à pasta de trabalho.
Método Workbook.SaveToFile() Salva a pasta de trabalho em um documento Excel.
Aula de planilha Representa uma planilha em uma pasta de trabalho.
Propriedade Worksheet.Range Obtém uma célula ou intervalo de células específico da planilha.
Propriedade Worksheet.Range.Value Obtém ou define o valor de uma célula.
Propriedade Worksheet.Rows Obtém uma coleção de linhas na planilha.
Método Worksheet.InsertDataTable() Importa dados do DataTable para a planilha.
Classe CellRange Representa uma célula ou intervalo de células na planilha.

A seguir estão as etapas para criar um documento Excel do zero usando Spire.XLS for .NET.

  • Crie um objeto Pasta de trabalho.
  • Adicione uma planilha usando o método Workbook.Worksheets.Add().
  • Grave dados em uma célula específica por meio da propriedade Worksheet.Range.Value.
  • Importe dados de um DataTable para a planilha usando o método Worksheet.InsertDataTable().
  • Salve a pasta de trabalho em um documento Excel usando o método Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Xls;
    using System.Data;
    
    namespace CreateExcelSpreadsheet
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Remove default worksheets
                wb.Worksheets.Clear();
    
                //Add a worksheet and name it "Employee"
                Worksheet sheet = wb.Worksheets.Add("Employee");
    
                //Merge the cells between A1 and G1
                sheet.Range["A1:G1"].Merge();
    
                //Write data to A1 and apply formatting to it
                sheet.Range["A1"].Value = "Basic Information of Employees of Huanyu Automobile Company";
                sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center;
                sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center;
                sheet.Range["A1"].Style.Font.IsBold = true;
                sheet.Range["A1"].Style.Font.Size = 13F;
    
                //Set row height of the first row
                sheet.Rows[0].RowHeight = 30F;
    
                //Create a DataTable
                DataTable dt = new DataTable();
                dt.Columns.Add("Name");
                dt.Columns.Add("Gender");
                dt.Columns.Add("Birth Date");
                dt.Columns.Add("Educational Background");
                dt.Columns.Add("Contact Number");
                dt.Columns.Add("Position");
                dt.Columns.Add("ID");
                dt.Rows.Add("Allen", "Male", "1990-02-10", "Bachelor", "24756854", "Mechanic", "0021");
                dt.Rows.Add("Patrick", "Male", "1985-06-08", "Master", "59863247", "Mechanic", "0022");
                dt.Rows.Add("Jenna", "Female", "1989-11-25", "Bachelor", "79540352", "Sales", "0023");
                dt.Rows.Add("Tommy", "Male", "1988-04-16", "Master", "52014060", "Mechanic", "0024");
                dt.Rows.Add("Christina", "Female", "1998-01-21", "Bachelor", "35401489", "HR", "0025");
    
                //Import data from DataTable to worksheet
                sheet.InsertDataTable(dt, true, 2, 1, true);
    
                //Set row height of a range
                sheet.Range["A2:G7"].RowHeight = 15F;
    
                //Set column width
                sheet.Range["A2:G7"].Columns[2].ColumnWidth = 15F;
                sheet.Range["A2:G7"].Columns[3].ColumnWidth = 21F;
                sheet.Range["A2:G7"].Columns[4].ColumnWidth = 15F;
    
                //Set border style of a range
                sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium);
                sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin);
                sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium);
                sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black;
    
                //Save to a .xlsx file
                wb.SaveToFile("NewSpreadsheet.xlsx", FileFormat.Version2016);
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Leia dados de uma planilha em C#, VB.NET

A propriedade Worksheet.Range.Value retorna o valor numérico ou o valor do texto de uma célula como uma string. Para obter dados de uma planilha inteira ou de um intervalo de células, percorra as células dentro dela. A seguir estão as etapas para obter dados de uma planilha usando Spire.XLS for .NET.

  • Crie um objeto Pasta de trabalho.
  • Carregue um documento Excel usando o método Workbook.LoadFromFile().
  • Obtenha uma planilha específica por meio da propriedade Workbook.Worksheets[index].
  • Obtenha o intervalo de células que contém dados por meio da propriedade Worksheet.AllocatedRange.
  • Itere pelas linhas e colunas para obter células dentro do intervalo e retorne o valor de cada célula por meio da propriedade CellRange.Value.
  • C#
  • VB.NET
using Spire.Xls;
    
    namespace ReadExcelData
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Load an existing Excel file
                wb.LoadFromFile(@"C:\Users\Administrator\Desktop\NewSpreadsheet.xlsx");
    
                //Get the first worksheet
                Worksheet sheet = wb.Worksheets[0];
    
                //Get the cell range containing data
                CellRange locatedRange = sheet.AllocatedRange;
    
                //Iterate through the rows
                for (int i = 0;i < locatedRange.Rows.Length;i++)
                {
                    //Iterate through the columns
                    for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
                    {
                        //Get data of a specific cell
                        Console.Write(locatedRange[i + 1, j + 1].Value + "  ");
    
                    }
                    Console.WriteLine();
                }
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Atualizar um documento Excel em C#, VB.NET

Para alterar o valor de uma determinada célula, basta reatribuir um valor a ela através da propriedade Worksheet.Range.Value. A seguir estão as etapas detalhadas.

  • Crie um objeto Pasta de trabalho.
  • Carregue um documento Excel usando o método Workbook.LoadFromFile().
  • Obtenha uma planilha específica por meio da propriedade Workbook.Worksheets[index].
  • Altere o valor de uma célula específica por meio da propriedade Worksheet.Range.Value.
  • Salve a pasta de trabalho em um arquivo Excel usando o método Workbook.SaveToFile().
  • C#
  • VB.NET
using Spire.Xls;
    
    namespace UpdateCellValue
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook wb = new Workbook();
    
                //Load an existing Excel file
                wb.LoadFromFile(@"C:\Users\Administrator\Desktop\NewSpreadsheet.xlsx");
    
                //Get the first worksheet
                Worksheet sheet = wb.Worksheets[0];
    
                //Change the value of a specific cell
                sheet.Range["A1"].Value = "Updated Value";
    
                //Save to file
                wb.SaveToFile("Updated.xlsx", ExcelVersion.Version2016);
            }
        }
    }

C#/VB.NET: Create, Read, or Update Excel Documents

Solicite uma licença temporária

Se desejar remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de teste de 30 dias para você mesmo.

Veja também