Hogyan töltsünk be egy táblázatot Go-ban
Aspose.Cells FOSS for Go betölti a meglévő .xlsx munkafüzetet memóriába Workbook formájában, így teljes hozzáférést biztosít a munkalapjaihoz és celláihoz a szabványos könyvtár API segítségével. Telepítsd a modult a go get használatával, mielőtt elkezdenéd.
Lépésről-lépésre útmutató
1. lépés: A csomag telepítése
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26A telepítés után ellenőrizd a modul verzióját a go.mod.
2. lépés: A szükséges osztályok importálása
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)3.lépés: Munkafüzet létrehozása és feltöltése a betöltéshez
Ez a példa először egy munkafüzetet hoz létre, hogy legyen egy valós .xlsx fájl a betöltéshez—a saját kódodban cseréld ki egy meglévő táblázat útvonalára:
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")4.lépés: Cellaértékek olvasása a betöltött munkalapról
Az első munkalap eléréséhez használd a Worksheets[0] és olvasd ki az egyes cellákat a Cells().Get(ref) segítségével:
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)5.lépés: Az összes feltöltött cella felsorolása
Használd a Cells().All() akkor, amikor minden beállított cellán végig kell iterálni, ahelyett, hogy egyes ismert hivatkozásokat egyesével olvasnál:
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)
}Gyakori problémák és megoldások
Get hibát ad vissza egy cellahivatkozás esetén. A hivatkozás még nincs beállítva a gyűjteményben. Erősítse meg, hogy a cella ezzel lett írva with Set, vagy ellenőrizze a visszakapott error kifejezetten a cella használata előtt.
Az értékek hibás típusúnak tűnnek. Cell.Value visszatükrözi azt a típust, amelyet átadtak neki Set (string, int, float64, és így tovább) — ellenőrizze egy type switch-kel, ha az alap Go típus alapján kell elágazni.
A betöltött munkafüzetben nincs adat a várt lapon. Erősítse meg, hogy a megfelelő bejegyzést indexeli a Worksheets — egy munkafüzetnek több munkalapja is lehet, és a céladatok nem feltétlenül találhatók a Worksheets[0].
Gyakran Ismételt Kérdések
A munkafüzet betöltéséhez szükséges, hogy az eredeti fájl még létezzen a lemezen?
Igen — Workbook a megadott fájlútról olvas. Tartsa a forrásfájlt elérhetően a betöltés időtartama alatt.
Módosíthatok egy cellát a betöltés után, és visszaírhatom a változtatásokat?
Igen — Cells().Set egy betöltött munkafüzeten ugyanúgy működik, mint egy újat létrehozva; hívja meg újra a(z) Save-t a változtatások írásához.
Van mód arra, hogy elkerüljük a teljes fájl memóriába betöltését?
Igen — használja a StreamingReader.ProcessRows nagy fájloknál, ahol csak soronként kell olvasni, a teljes munkafüzet betöltése helyett.