Cum să încarci o foaie de calcul în Go
Aspose.Cells FOSS pentru Go încarcă un registru .xlsx existent în memorie ca Workbook, oferindu-vă acces complet la foile de calcul și celule prin API din biblioteca standard. Instalați modulul cu go get înainte de a începe.
Ghid pas cu pas
Pasul 1: Instalați pachetul
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Verificați versiunea modulului în go.mod după instalare.
Pasul 2: Importați clasele necesare
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Pasul 3: Crearea și popularea unui registru de lucru pentru încărcare
Acest exemplu creează mai întâi un registru de lucru pentru a avea un fișier .xlsx real de încărcat — în propriul tău cod, înlocuiește calea cu o foaie de calcul existentă:
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")Pasul 4: Citirea valorilor celulelor din foaia de lucru încărcată
Accesează prima foaie de lucru prin Worksheets[0] și citește celulele individuale cu 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)Pasul 5: Enumerarea tuturor celulelor populate
Folosește Cells().All() când trebuie să iterezi prin fiecare celulă setată, în loc să citești referințele cunoscute una câte una:
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)
}Probleme comune și soluții
Get returnează o eroare pentru o referință de celulă. Referința nu a fost încă setată în colecție. Confirmă că celula a fost scrisă cu Set, sau verifică ce a fost returnat error în mod explicit înainte de a folosi celula.
Valorile par să fie de tip greșit. Cell.Value reflectă orice tip a fost transmis către Set (string, int, float64, și așa mai departe) — inspectează-l cu un type switch dacă trebuie să ramifici pe tipul de bază Go.
Registrul de lucru încărcat nu conține date pe foaia așteptată. Confirmați că indexați intrarea corectă în Worksheets — un registru de lucru poate avea mai mult de o foaie de calcul, iar datele țintă s-ar putea să nu fie pe Worksheets[0].
Întrebări frecvente
Încărcarea unui caiet de lucru necesită ca fișierul original să mai existe pe disc?
Da — Workbook citește din calea de fișier pe care o furnizezi. Menține fișierul sursă accesibil pe durata încărcării.
Pot modifica o celulă după încărcare și să salvez modificările înapoi?
Da — Cells().Set funcționează pe un caiet de lucru încărcat la fel ca pe unul nou creat; apelează din nou Save pentru a scrie modificările.
Există o modalitate de a evita încărcarea întregului fișier în memorie?
Da — folosește StreamingReader.ProcessRows pentru fișiere mari în care trebuie să citești rândurile secvențial, în loc să încarci întregul registru de lucru.