Jak załadować arkusz kalkulacyjny w Go

Jak załadować arkusz kalkulacyjny w Go

Aspose.Cells FOSS dla Go ładuje istniejący .xlsx workbook do pamięci jako Workbook, dając pełny dostęp do jego arkuszy i komórek za pośrednictwem standardowej biblioteki API. Zainstaluj moduł za pomocą go get przed rozpoczęciem.

Przewodnik krok po kroku

Krok 1: Zainstaluj pakiet

go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26

Sprawdź wersję modułu w swoim go.mod po instalacji.


Krok 2: Zaimportuj wymagane klasy

import (
	cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)

Krok 3: Utwórz i wypełnij Workbook do załadowania

Ten przykład najpierw tworzy workbook, aby mieć rzeczywisty plik .xlsx do załadowania — w swoim własnym kodzie zamień ścieżkę na istniejący 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")

Krok 4: Odczytaj wartości komórek z załadowanego Worksheet

Uzyskaj dostęp do pierwszego worksheet poprzez Worksheets[0] i odczytaj poszczególne komórki za 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: Wymień wszystkie wypełnione komórki

Użyj Cells().All(), gdy potrzebujesz iterować po każdej ustawionej komórce, zamiast odczytywać znane odwołania pojedynczo:

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)
}

Typowe problemy i rozwiązania

Get zwraca błąd dla odwołania do komórki. Odwołanie nie zostało jeszcze ustawione w kolekcji. Potwierdź, że komórka została zapisana z Set, lub sprawdź zwrócony error wyraźnie przed użyciem komórki.

Wartości wyglądają na niewłaściwy typ. Cell.Value odzwierciedla dowolny typ przekazany do Set (string, int, float64 i tak dalej) — sprawdź to za pomocą przełącznika typów, jeśli musisz rozgałęziać się w zależności od podstawowego typu Go.

Załadowany skoroszyt nie zawiera danych na oczekiwanym arkuszu. Potwierdź, że indeksujesz właściwy wpis w Worksheets — skoroszyt może mieć więcej niż jeden arkusz, a docelowe dane mogą nie znajdować się na Worksheets[0].

Najczęściej zadawane pytania

Czy ładowanie skoroszytu wymaga, aby oryginalny plik nadal istniał na dysku?

Tak — Workbook odczytuje z podanej ścieżki pliku. Utrzymuj plik źródłowy dostępny przez cały czas trwania ładowania.

Czy mogę zmodyfikować komórkę po załadowaniu i zapisać zmiany z powrotem?

Tak — Cells().Set działa na załadowanym skoroszycie w ten sam sposób, co na nowo utworzonym; wywołaj ponownie Save, aby zapisać zmiany.

Czy istnieje sposób, aby uniknąć wczytywania całego pliku do pamięci?

Tak — użyj StreamingReader.ProcessRows dla dużych plików, gdy potrzebujesz tylko odczytywać wiersze kolejno, zamiast ładować cały skoroszyt.

Zobacz także

 Polski