Aspose.Cells FOSS for Go é uma biblioteca gratuita e de código aberto para trabalhar com arquivos de planilhas Excel em aplicações Go. Instale-a com go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26 e comece a criar pastas de trabalho, ler e gravar células, aplicar estilos, adicionar validação de dados e exportar para CSV, sem precisar do Microsoft Excel ou de qualquer dependência do Office.
A biblioteca expõe um pequeno e idiomático API Go construído em torno de Workbook, Worksheet, Cells e Cell. Acesse células através da coleção Cells() com Get/Set/Remove, agrupe formatação em objetos reutilizáveis Style construídos a partir de Font, Fill, Alignment e Border, e construa intervalos Table estruturados com uma linha de cabeçalho e estilo de tabela nomeado. Um StreamingReader dedicado lê pastas de trabalho .xlsx linha por linha via um callback, permitindo que arquivos grandes sejam processados sem carregar a planilha inteira na memória.
go.mod não declara dependências externas — a biblioteca é construída inteiramente sobre a biblioteca padrão do Go. Ela tem licença MIT, está hospedada no GitHub e é instalada com um único comando go get; sem cgo, sem bibliotecas nativas do Office e sem pacotes de sistema para configurar. Para a família de produtos empresariais, veja Aspose.Cells — Enterprise Product Family.
Cells().Get(ref) / Cells().Set(ref, value).Cell.SetFormula/GetFormula armazenam uma string de fórmula na célula — avaliada pelo Excel ou LibreOffice ao abrir, não pela biblioteca no momento da gravação.Workbook.ExportToCSV/ImportFromCSV e Worksheet.ToCSV/FromCSV convertem entre XLSX e CSV.StreamingReader.ProcessRows transmite uma planilha linha por linha via um callback, para processamento de arquivos grandes sem carregar toda a planilha na memória.Workbook.SetPassword/VerifyPassword protegem e verificam senhas da pasta de trabalho.StreamingReader em vez de carregá-las totalmente na memória.Font (name, size, bold, italic, color), Fill (type, color), Alignment (horizontal, vertical, wrap text) e Border (top/bottom/left/right, color) em um Style reutilizável, aplicado com Cell.SetStyle.Worksheet.AddDataValidation anexa regras de validação de lista e intervalo de número inteiro, cada uma com um título de erro personalizado, mensagem e estilo de erro.Worksheet.AddTable/GetTable criam um intervalo Table estruturado com uma linha de cabeçalho opcional e um estilo de tabela nomeado.Worksheet.AddPicture incorpora uma imagem Picture com posicionamento SetAnchor(row, col).Aspose.Cells FOSS for Go instala com um único comando go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. go.mod não tem entradas require — não há dependências externas para analisar ou vendor.
A interface API foi projetada intencionalmente compacta: Workbook, Worksheet, Cells, Cell, Style e um conjunto de tipos de suporte cobrem a criação de planilhas, estilização, validação e I/O CSV/streaming. O código-fonte tem licença MIT e está hospedado no GitHub.
Instale com go get, crie uma Workbook, acesse a primeira Worksheet e escreva valores diretamente nas células através da coleção Cells() antes de salvar.
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Hello")
ws.Cells().Set("B1", "World")
ws.Cells().Set("A2", "Answer")
ws.Cells().Set("B2", 42)
outPath := "outputfiles/basic.xlsx"
if err := wb.Save(outPath); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Printf("Workbook saved to %s\n", outPath)
}
Anexe uma validação do tipo lista (um menu suspenso de valores permitidos) e uma validação de intervalo de número inteiro a duas colunas diferentes, cada uma com seu próprio título e mensagem de erro.
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Fruit")
ws.Cells().Set("A2", "Apple")
ws.Cells().Set("A3", "Banana")
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,
}
if err := ws.AddDataValidation("A2:A10", dv); err != nil {
fmt.Printf("Error: %v\n", err)
return
}
dv2 := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeWhole,
Formula1: "1",
Formula2: "100",
ShowErrorMessage: true,
ErrorTitle: "Invalid Value",
ErrorMessage: "Enter a whole number between 1 and 100.",
ErrorStyle: cells_foss.ErrorStyleWarning,
}
ws.Cells().Set("B1", "Score (1-100)")
ws.AddDataValidation("B2:B10", dv2)
outPath := "outputfiles/data_validation.xlsx"
if err := wb.Save(outPath); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Printf("Workbook saved to %s\n", outPath)
}
StreamingReader lê uma planilha linha por linha através de um callback, de modo que uma pasta de trabalho com milhares de linhas nunca precisa ser carregada completamente na memória.
func main() {
genPath := "outputfiles/streaming_data.xlsx"
sr := cells_foss.NewStreamingReader(genPath)
rowCount := 0
var totalScore float64
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
rowCount++
if rowIdx == 1 {
fmt.Printf(" Header: %v\n", cells)
return nil
}
if score, ok := cells["C"+fmt.Sprint(rowIdx)]; ok {
var s float64
fmt.Sscanf(score, "%f", &s)
totalScore += s
}
return nil
})
if err != nil {
fmt.Fprintf(os.Stderr, "Error streaming: %v\n", err)
os.Exit(1)
}
fmt.Printf("Streamed %d rows (header + %d data rows)\n", rowCount, rowCount-1)
}
Aspose.Cells FOSS for Go é lançado sob a Licença MIT, que permite uso comercial e de código aberto.
Sim. A Licença MIT permite uso comercial sem obrigação de divulgar seu próprio código-fonte, desde que o aviso de direitos autorais original seja mantido.
Adicione-o como uma dependência de módulo Go com go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26. Requer Go 1.24 ou posterior.
Não. go.mod declara nenhuma entrada require — a biblioteca é construída inteiramente sobre a biblioteca padrão do Go.
Sim. StreamingReader.ProcessRows lê uma planilha linha por linha por meio de um callback, evitando um carregamento completo na memória.