Visão geral dos recursos
Visão geral do recurso
Aspose.Cells FOSS para API do Go centra-se em Workbook, Worksheet, Cells e Cell. Este guia percorre as outras capacidades da biblioteca: estilização, validação de dados, tabelas, imagens e leituras em streaming para arquivos grandes.
Estilização de Célula
Agrupe as configurações de Font, Fill, Alignment e Border em um Style reutilizável, depois 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
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
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)Uma validação de intervalo de números inteiros usa DataValidationTypeWhole com Formula1/Formula2 como limites inferior e superior.
Tabelas
Worksheet.AddTable cria um Table estruturado sobre um intervalo, com uma linha de cabeçalho opcional e um estilo de tabela nomeado:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Recupere uma tabela existente pelo nome com Worksheet.GetTable(name).
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 precise ser carregada completamente na memória:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}Dicas e Melhores Práticas
- Use
StreamingReaderem vez de um carregamento completo deWorkbookquando um arquivo pode ter milhares de linhas e você só precisa ler, não modificar, ele. - Crie um
Styleuma vez e reutilize-o em várias células em vez de construir um novo para cada célula. Cell.SetFormulaarmazena uma string de fórmula literalmente — ela é avaliada pelo Excel ou LibreOffice ao abrir, não pela biblioteca no momento de salvar.- Verifique o valor de retorno
errordeSave,AddDataValidatione das chamadas de importação/exportação CSV — a E/S de planilhas pode falhar em caminhos inválidos ou entrada malformada.
Problemas Comuns
| Issue | Cause | Corrigir |
|---|---|---|
Valor da célula não visível após Set | Referenciando a planilha errada ou uma referência de célula fora do intervalo | Confirme o índice Worksheet e que a referência no estilo A1 corresponde à célula pretendida |
| A fórmula aparece como texto bruto ao invés de ser calculada | A biblioteca apenas armazena a string da fórmula; ela não avalia fórmulas | Abra o arquivo no Excel ou LibreOffice, que executam o cálculo ao abrir |
| Validação de dados não visível no Excel | A validação foi adicionada a um intervalo que não inclui a célula alvo | Confirme se a string de intervalo (por exemplo, "A2:A10") cobre as células que você espera validar |
FAQ
A biblioteca avalia fórmulas por conta própria?
No. Cell.SetFormula/GetFormula armazenam uma string de fórmula que o Excel ou LibreOffice avalia quando o arquivo é aberto.
Posso stream-write grandes workbooks, não apenas stream-read?
StreamingReader cobre leituras em streaming. Gravar grandes workbooks atualmente passa pelo padrão em memória Workbook/Worksheet API.
O AddTable aplica um auto-filter automaticamente?
Isso não está confirmado na superfície atual do API — apenas HasHeaderRow e StyleName são campos Table documentados. Verifique o arquivo .xlsx gerado se isso for relevante para o seu caso de uso.
API Reference Resumo
| Classe / Método | Descrição |
|---|---|
Workbook.NewWorkbook / Save | Crie e salve um workbook |
Worksheet.Cells | Acesse a coleção de células de uma planilha |
Cells.Get / Set / Remove / All | Leia, escreva, remova e enumere células |
Cell.SetStyle / SetFormula / GetFormula | Aplique estilos e fórmulas a uma célula |
Style, Font, Fill, Alignment, Border | Crie formatação de célula reutilizável |
Worksheet.AddDataValidation | Anexe uma regra de validação a um intervalo de células |
Worksheet.AddTable / GetTable | Crie e recupere intervalos de tabelas estruturadas |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Incorporar e posicionar imagens |
StreamingReader.ProcessRows | Transmitir uma planilha linha a linha |
Workbook.ExportToCSV / ImportFromCSV | Converter entre XLSX e CSV |
Workbook.SetPassword / VerifyPassword | Proteger e verificar a senha de uma pasta de trabalho |