Jak načíst tabulku v Go
Aspose.Cells FOSS pro Go načte existující .xlsx sešit do paměti jako Workbook, což vám poskytne plný přístup k jeho listům a buňkám prostřednictvím standardní knihovny API. Nainstalujte modul pomocí go get před zahájením.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Ověřte verzi modulu ve vašem go.mod po instalaci.
Krok 2: Importujte požadované třídy
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Krok 3: Vytvořit a naplnit sešit pro načtení
Tento příklad nejprve vytvoří sešit, aby měl skutečný soubor .xlsx k načtení — ve svém kódu nahraďte cestu k existujícímu tabulkovému souboru:
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")Krok 4: Přečíst hodnoty buněk z načteného listu
Přistupte k prvnímu listu pomocí Worksheets[0] a přečtěte jednotlivé buňky pomocí 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)Krok 5: Vypsat všechny naplněné buňky
Použijte Cells().All(), když potřebujete projít každou nastavenou buňku, místo abyste četli známé odkazy po jedné:
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)
}Běžné problémy a opravy
Get vrací chybu pro odkaz na buňku. Odkaz ještě nebyl v kolekci nastaven. Potvrďte, že buňka byla zapsána s Set, nebo zkontrolujte vrácené error explicitně před použitím buňky.
Hodnoty vypadají jako špatný typ. Cell.Value odráží jakýkoli typ předaný do Set (string, int, float64 a podobně) — prozkoumejte jej pomocí type switch, pokud potřebujete rozvětvit podle podkladového typu Go.
Načtený sešit neobsahuje data na očekávaném listu. Potvrďte, že indexujete správnou položku v Worksheets — sešit může mít více než jeden list a cílová data nemusí být na Worksheets[0].
Často kladené otázky
Vyžaduje načítání sešitu, aby původní soubor stále existoval na disku?
Ano — Workbook čte ze souborové cesty, kterou zadáte. Uchovávejte zdrojový soubor přístupný po dobu načítání.
Mohu po načtení upravit buňku a změny uložit zpět?
Ano — Cells().Set funguje na načteném sešitu stejným způsobem jako na nově vytvořeném; zavolejte Save znovu pro zápis vašich změn.
Existuje způsob, jak se vyhnout načítání celého souboru do paměti?
Ano — použijte StreamingReader.ProcessRows pro velké soubory, kde potřebujete pouze číst řádky sekvenčně místo načítání celé sešitu.