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 StreamingReader em vez de um carregamento completo de Workbook quando um arquivo pode ter milhares de linhas e você só precisa ler, não modificar, ele.
  • Crie um Style uma vez e reutilize-o em várias células em vez de construir um novo para cada célula.
  • Cell.SetFormula armazena 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 error de Save, AddDataValidation e das chamadas de importação/exportação CSV — a E/S de planilhas pode falhar em caminhos inválidos ou entrada malformada.

Problemas Comuns

IssueCauseCorrigir
Valor da célula não visível após SetReferenciando a planilha errada ou uma referência de célula fora do intervaloConfirme 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 calculadaA biblioteca apenas armazena a string da fórmula; ela não avalia fórmulasAbra o arquivo no Excel ou LibreOffice, que executam o cálculo ao abrir
Validação de dados não visível no ExcelA validação foi adicionada a um intervalo que não inclui a célula alvoConfirme 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étodoDescrição
Workbook.NewWorkbook / SaveCrie e salve um workbook
Worksheet.CellsAcesse a coleção de células de uma planilha
Cells.Get / Set / Remove / AllLeia, escreva, remova e enumere células
Cell.SetStyle / SetFormula / GetFormulaAplique estilos e fórmulas a uma célula
Style, Font, Fill, Alignment, BorderCrie formatação de célula reutilizável
Worksheet.AddDataValidationAnexe uma regra de validação a um intervalo de células
Worksheet.AddTable / GetTableCrie e recupere intervalos de tabelas estruturadas
Worksheet.AddPicture / Picture.SetAnchor(row, col)Incorporar e posicionar imagens
StreamingReader.ProcessRowsTransmitir uma planilha linha a linha
Workbook.ExportToCSV / ImportFromCSVConverter entre XLSX e CSV
Workbook.SetPassword / VerifyPasswordProteger e verificar a senha de uma pasta de trabalho

Ver também

 Português