Trabajo con Excel en Go (Golang): bibliotecas Excelize, xlsx, tealeg

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en Go (Golang): guía completa



A pesar de que Python sigue siendo el líder indiscutible en el procesamiento de datos, Go (Golang) se utiliza cada vez más para crear aplicaciones de servidor de alto rendimiento que requieren generación rápida de informes, importación de datos desde tablas o integración con sistemas contables. En este artículo, revisaremos las tres bibliotecas más populares para trabajar con Excel en Go: Excelize, xlsx (tealeg) y xlsx (qax-os). Aprenderá a leer, crear y formatear archivos XLSX, y también obtendrá ejemplos de código listos para usar.



¿Por qué Go para Excel?

Go se compila en código nativo, consume poca memoria y escala excelentemente. Las bibliotecas para Excel en Go cubren completamente las necesidades de las aplicaciones empresariales: desde la simple exportación de datos hasta el formateo complejo con celdas combinadas, estilos y gráficos. Además, Go no requiere la instalación de un paquete ofimático o Microsoft Office Interop: todas las operaciones se realizan directamente con la estructura XML de OOXML.



1. Excelize: la biblioteca más potente para Go

Excelize es una biblioteca pure Go que admite la lectura y escritura de archivos XLSX, XLSM, XLTM, así como el trabajo con gráficos, imágenes, tablas, formato condicional y tablas dinámicas. Se desarrolla activamente y tiene la comunidad más grande entre las soluciones Go para Excel.



Instalación

go get github.com/xuri/excelize/v2


Ejemplo: creación de un archivo Excel con formato

package main

import ( "fmt" "github.com/xuri/excelize/v2")

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

// Creamos una nueva hoja index := f.NewSheet("Hoja2") f.SetCellValue("Hoja2", "A1", "Nombre") f.SetCellValue("Hoja2", "B1", "Cantidad") f.SetCellValue("Hoja2", "A2", "Producto A") f.SetCellValue("Hoja2", "B2", 150)

// Establecemos el estilo para el encabezado style, _ := f.NewStyle(&excelize.Style{ Font: &excelize.Font{Bold: true, Color: "FFFFFF"}, Fill: excelize.Fill{Type: "pattern", Pattern: 1, Color: []string{"4472C4"}}, }) f.SetCellStyle("Hoja2", "A1", "B1", style)

// Establecemos la primera hoja como activa f.SetActiveSheet(index)

// Guardamos el archivo if err := f.SaveAs("Informe.xlsx"); err != nil { fmt.Println(err) }}


Lectura de un archivo existente

package main

import ( "fmt" "github.com/xuri/excelize/v2")

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

// Leemos el valor de una celda cell, _ := f.GetCellValue("Hoja2", "A2") fmt.Println("Valor de A2:", cell)

// Leemos todas las filas de la hoja rows, _ := f.GetRows("Hoja2") for _, row := range rows { for _, col := range row { fmt.Print(col, "\\t") } fmt.Println() }}


2. xlsx (tealeg): analizador ligero y rápido

La biblioteca tealeg/xlsx es una herramienta clásica para leer y escribir XLSX. Es más simple que Excelize, pero maneja bien las tareas básicas. Admite estilos, combinación de celdas, comentarios y formato condicional.



Instalación

go get github.com/tealeg/xlsx/v3


Ejemplo: escritura de datos

package main

import ( "github.com/tealeg/xlsx/v3")

func main() { wb := xlsx.NewFile() sheet, _ := wb.AddSheet("Datos")

// Agregamos una fila row := sheet.AddRow() cell1 := row.AddCell() cell1.Value = "Nombre" cell2 := row.AddCell() cell2.Value = "Edad"

row2 := sheet.AddRow() row2.AddCell().SetStrin

Recommendations