Introducción
Aspose.Cells FOSS para Go es una biblioteca puramente Go para trabajar con hojas de cálculo Excel. Expone un API para crear nuevos libros de trabajo desde cero, escribir y aplicar estilo a valores de celdas, aplicar reglas de validación de datos, construir tablas estructuradas, incrustar imágenes y leer archivos .xlsx grandes fila por fila — todo sin dependencias nativas de C o C++.
La biblioteca está disponible como módulo Go en github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go y se publica bajo la licencia MIT. Instálala con go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 en cualquier proyecto Go 1.24+.
Esta publicación cubre las capacidades principales: estilo de celdas, validación de datos, tablas, imágenes y lecturas en streaming.
Características clave
Estilo de celdas
Agrupa los ajustes de Font, Fill, Alignment y Border en un Style reutilizable, y luego aplícalo a una celda con Cell.SetStyle:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)
Alignment controla Horizontal, Vertical y WrapText; Border controla la visibilidad de las reglas Top, Bottom, Left y Right además de Color.
Validación de datos
Worksheet.AddDataValidation adjunta una regla de validación a un rango de celdas. La estructura DataValidation contiene la regla Type, uno o dos valores Formula y campos de mensaje de error:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)
Tablas
Worksheet.AddTable crea una Table estructurada sobre un rango, con una fila de encabezado opcional y un estilo de tabla con nombre:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")
tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"
Imágenes
Worksheet.AddPicture incrusta una imagen; Picture.SetAnchor(row, col) la posiciona:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)
Transmisión de archivos grandes
StreamingReader lee una hoja de cálculo fila por fila mediante una devolución de llamada, de modo que un libro de trabajo con miles de filas nunca tiene que cargarse completamente en memoria:
sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}
Inicio rápido
Instala el módulo:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Un flujo de trabajo mínimo — crea un libro de trabajo, escribe dos celdas, pone en negrita el encabezado y guarda:
package main
import (
"fmt"
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Revenue")
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
for _, ref := range []string{"A1", "B1"} {
cell, _ := ws.Cells().Get(ref)
cell.SetStyle(boldStyle)
}
if err := wb.Save("report.xlsx"); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Println("Workbook saved to report.xlsx")
}
Formatos compatibles
| Formato | Extensión | Leer | Escribir |
|---|---|---|---|
| XLSX | .xlsx | — | ✓ |
| CSV | .csv | ✓ | ✓ |
Los libros de trabajo XLSX se crean en memoria con NewWorkbook y se escriben con Workbook.Save. CSV es bidireccional mediante Workbook.ImportFromCSV y Workbook.ExportToCSV.
Código abierto y licencias
Aspose.Cells FOSS para Go se publica bajo la licencia MIT. No hay restricciones de uso, ni tarifas de ejecución, ni requisitos de registro. El código fuente está disponible en github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.
El uso comercial está permitido bajo los términos de la licencia MIT. Si su proyecto requiere soporte de nivel empresarial, cobertura ampliada de formatos o integración en la nube, la Aspose.Cells — Enterprise Product Family es una oferta comercial separada.
Comenzando
- Guía de instalación
- Guía del desarrollador
- Artículos de la base de conocimientos
- API Reference
- Repositorio de GitHub