Hoe een Spreadsheet te Laden in Go
Aspose.Cells FOSS voor Go laadt een bestaande .xlsx werkmap in het geheugen als een Workbook, waardoor je volledige toegang krijgt tot de werkbladen en cellen via de standaardbibliotheek API. Installeer de module met go get voordat je begint.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Controleer de moduleversie in je go.mod na installatie.
Stap 2: Importeer vereiste klassen
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Stap 3: Een werkmap maken en vullen om te laden
Dit voorbeeld maakt eerst een werkmap om een echt .xlsx-bestand te hebben om te laden — vervang in uw eigen code het pad door een bestaand spreadsheet:
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")Stap 4: Celwaarden lezen uit het geladen werkblad
Toegang tot het eerste werkblad via Worksheets[0] en lees individuele cellen met 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)Stap 5: Alle ingevulde cellen enumereren
Gebruik Cells().All() wanneer u over elke ingestelde cel moet itereren, in plaats van bekende referenties één voor één te lezen:
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)
}Veelvoorkomende problemen en oplossingen
Get geeft een fout terug voor een celreferentie. De referentie is nog niet ingesteld in de collectie. Bevestig dat de cel is geschreven met Set, of controleer de geretourneerde error expliciet voordat je de cel gebruikt.
Waarden lijken van het verkeerde type te zijn. Cell.Value reflecteert elk type dat is doorgegeven aan Set (string, int, float64, enzovoort) — inspecteer het met een type-switch als je moet vertakken op het onderliggende Go-type.
Geladen werkmap bevat geen gegevens op het verwachte blad. Bevestig dat u de juiste invoer indexeert in Worksheets — een werkmap kan meer dan één werkblad bevatten, en de doeldataset staat mogelijk niet op Worksheets[0].
Veelgestelde vragen
Vereist het laden van een werkmap dat het oorspronkelijke bestand nog steeds op schijf bestaat?
Ja — Workbook leest van het bestandspad dat u opgeeft. Houd het bronbestand toegankelijk gedurende de laadsessie.
Kan ik een cel wijzigen na het laden en de wijzigingen terug opslaan?
Ja — Cells().Set werkt op een geladen werkmap op dezelfde manier als op een nieuw aangemaakte; roep Save opnieuw aan om uw wijzigingen te schrijven.
Is er een manier om te voorkomen dat het hele bestand in het geheugen wordt geladen?
Ja — gebruik StreamingReader.ProcessRows voor grote bestanden waarbij je alleen rijen sequentieel hoeft te lezen in plaats van het hele werkboek te laden.