Como carregar uma planilha em Go
Aspose.Cells FOSS para Go carrega um workbook .xlsx existente na memória como um Workbook, dando acesso total às suas worksheets e cells através da API da biblioteca padrão. Instale o módulo com go get antes de começar.
Guia passo a passo
Etapa 1: Instalar o pacote
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Verifique a versão do módulo no seu go.mod após a instalação.
Etapa 2: Importar as classes necessárias
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Etapa 3: Criar e Preencher uma Pasta de Trabalho para Carregar
Este exemplo primeiro cria uma pasta de trabalho para ter um arquivo .xlsx real para carregar — no seu próprio código, substitua o caminho por uma planilha existente:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")Etapa 4: Ler Valores das Células da Planilha Carregada
Acesse a primeira planilha através de Worksheets[0] e leia células individuais com Cells().Get(ref):
wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)
ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
fmt.Printf("Error reading cell: %v\n", err)
return
}
fmt.Printf("Price: %v\n", cell.Value)Etapa 5: Enumerar Todas as Células Populadas
Use Cells().All() quando precisar iterar sobre cada célula que foi definida, em vez de ler referências conhecidas uma por uma:
wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")
allCells := ws2.Cells().All()
for ref, c := range allCells {
fmt.Printf("%s = %v\n", ref, c.Value)
}Problemas Comuns e Soluções
Get retorna um erro para uma referência de célula. A referência ainda não foi definida na coleção. Confirme se a célula foi escrita com Set, ou verifique o retornado error explicitamente antes de usar a célula.
Os valores parecem ser do tipo errado. Cell.Value reflete qualquer tipo que foi passado para Set (string, int, float64, e assim por diante) — inspecione-o com um type switch se precisar ramificar com base no tipo subjacente do Go.
A planilha carregada não tem dados na aba esperada. Confirme se você está indexando a entrada correta em Worksheets — uma pasta de trabalho pode ter mais de uma planilha, e os dados-alvo podem não estar em Worksheets[0].
Perguntas Frequentes
Carregar uma planilha requer que o arquivo original ainda exista no disco?
Sim — Workbook lê a partir do caminho de arquivo que você fornece. Mantenha o arquivo fonte acessível durante todo o carregamento.
Posso modificar uma célula após o carregamento e salvar as alterações de volta?
Sim — Cells().Set funciona em uma planilha carregada da mesma forma que funciona em uma recém-criada; chame Save novamente para gravar suas alterações.
Existe uma maneira de evitar carregar o arquivo inteiro na memória?
Sim — use StreamingReader.ProcessRows para arquivos grandes onde você só precisa ler as linhas sequencialmente em vez de carregar toda a planilha.