Introdução
Aspose.Cells FOSS para Go é uma biblioteca pura-Go para trabalhar com planilhas Excel. Ela expõe um API para criar novas pastas de trabalho do zero, gravar e estilizar valores de células, aplicar regras de validação de dados, construir tabelas estruturadas, incorporar imagens e ler grandes arquivos .xlsx linha por linha — tudo sem dependências nativas de C ou C++.
A biblioteca está disponível como um módulo Go em github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go e é lançada sob a licença MIT. Instale-a com go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 em qualquer projeto Go 1.24+.
Este post aborda as principais funcionalidades: estilização de células, validação de dados, tabelas, imagens e leituras em streaming.
Recursos Principais
Estilização de Células
Agrupe as configurações Font, Fill, Alignment e Border em um Style reutilizável e, em seguida, aplique-o a uma célula com 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 e WrapText; Border controla a visibilidade das regras Top, Bottom, Left e Right, além de Color.
Validação de Dados
Worksheet.AddDataValidation anexa uma regra de validação a um intervalo de células. A estrutura DataValidation contém a regra Type, um ou dois valores Formula e campos de mensagem de erro:
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)
Tabelas
Worksheet.AddTable cria uma Table estruturada sobre um intervalo, com uma linha de cabeçalho opcional e um estilo de tabela nomeado:
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"
Imagens
Worksheet.AddPicture incorpora uma imagem; Picture.SetAnchor(row, col) a 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)
Transmissão de Arquivos Grandes
StreamingReader lê uma planilha linha por linha por meio de um callback, de modo que uma pasta de trabalho com milhares de linhas nunca precisa ser carregada completamente na memória:
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)
}
Início rápido
Instale o módulo:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Um fluxo de trabalho mínimo — crie uma pasta de trabalho, escreva duas células, negrite o cabeçalho e salve:
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 suportados
| Formato | Extensão | Ler | Gravar |
|---|---|---|---|
| XLSX | .xlsx | — | ✓ |
| CSV | .csv | ✓ | ✓ |
As pastas de trabalho XLSX são construídas na memória com NewWorkbook e gravadas com Workbook.Save. CSV é bidirecional via Workbook.ImportFromCSV e Workbook.ExportToCSV.
Código aberto e licenciamento
Aspose.Cells FOSS para Go é lançado sob a licença MIT. Não há restrições de uso, taxas de tempo de execução ou requisitos de registro. O código-fonte está disponível em github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go.
O uso comercial é permitido sob os termos da licença MIT. Se o seu projeto requer suporte de nível empresarial, cobertura de formatos ampliada ou integração com a nuvem, o Aspose.Cells — Enterprise Product Family é uma oferta comercial separada.
Iniciando
- Guia de Instalação
- Guia do Desenvolvedor
- Artigos da Base de Conhecimento
- API Reference
- Repositório GitHub