Jak načíst tabulku v Go

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/v26

Ověř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.

Viz také:

 Čeština