Trabalhando com Excel em Go (Golang): bibliotecas, exemplos e ferramentas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em Go (Golang): visão geral das bibliotecas e exemplos práticos



Go (Golang) é uma linguagem de programação compilada moderna, cada vez mais usada para criar aplicações servidoras, processamento de dados e automação de tarefas de escritório. Uma das necessidades frequentes é trabalhar com planilhas eletrônicas do Excel. Neste artigo, veremos as principais bibliotecas para trabalhar com Excel em Go, suas funcionalidades e apresentaremos exemplos práticos de código.



Principais bibliotecas para trabalhar com Excel em Go



Atualmente, as duas bibliotecas mais populares e funcionais são:



  • excelize (github.com/qax-os/excelize) — uma biblioteca poderosa para leitura e escrita de arquivos Excel (formato .xlsx). Suporta estilos, fórmulas, gráficos, mesclagem de células, proteção de planilhas e muito mais.
  • tealeg/xlsx (github.com/tealeg/xlsx) — uma biblioteca mais leve para operações básicas de leitura e escrita de arquivos .xlsx. Simples de aprender, mas com menos funcionalidades.


Neste guia, focaremos na biblioteca excelize, pois ela é o padrão de facto para trabalhar com Excel em Go.



Instalação da biblioteca excelize



Para começar, instale a biblioteca usando o gerenciador de pacotes Go:



go get github.com/qax-os/excelize/v2


Após a instalação, você pode importá-la no seu projeto:



import "github.com/qax-os/excelize/v2"


Criando um novo arquivo Excel



Vamos criar um arquivo simples com dados de vendas:



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

func main() { // Cria um novo arquivo f := excelize.NewFile() defer f.Close()

// Cria uma nova planilha index := f.NewSheet("Vendas") // Define valores das células f.SetCellValue("Vendas", "A1", "Produto") f.SetCellValue("Vendas", "B1", "Quantidade") f.SetCellValue("Vendas", "C1", "Preço") f.SetCellValue("Vendas", "A2", "Notebook") f.SetCellValue("Vendas", "B2", 15) f.SetCellValue("Vendas", "C2", 85000) f.SetCellValue("Vendas", "A3", "Monitor") f.SetCellValue("Vendas", "B3", 30) f.SetCellValue("Vendas", "C3", 32000)

// Define a planilha ativa f.SetActiveSheet(index)

// Salva o arquivo if err := f.SaveAs("vendas.xlsx"); err != nil { fmt.Println(err) } fmt.Println("Arquivo criado com sucesso!")}


Lendo um arquivo Excel existente



Agora, vamos ler o arquivo criado anteriormente e exibir os dados no console:



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

func main() { f, err := excelize.OpenFile("vendas.xlsx") if err != nil { fmt.Println(err) return } defer f.Close()

// Obtém todas as linhas da planilha "Vendas" rows, err := f.GetRows("Vendas") if err != nil { fmt.Println(err) return }

for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\\t") } fmt.Println() }}


Formatação de células e estilos



Um dos pontos fortes do excelize é o suporte a estilos. Aqui está um exemplo de como deixar os cabeçalhos em negrito e adicionar bordas:



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

func main() { f := excelize.NewFile() defer f.Close()

// Cria um estilo para os cabeçalhos style, err := f.NewStyle(&excelize.Style{ Font: &excelize.Font{ Bold: true, Size: 12, }, Border: []excelize.Border{ {Type: "left", Color: "000000", Style: 1}, {Type: "right", Color: "000000", Style: 1}, {Type: "top", Color: "000000", Style: 1}, {Type: "bottom", Color: "000000", S

Recommendations