Wie man eine Tabellenkalkulation in Go lädt
Aspose.Cells FOSS für Go lädt ein vorhandenes .xlsx Arbeitsbuch in den Speicher als ein Workbook, wodurch Sie vollen Zugriff auf seine Arbeitsblätter und Zellen über die Standardbibliothek API erhalten. Installieren Sie das Modul mit go get, bevor Sie beginnen.
Schritt-für-Schritt-Anleitung
Schritt 1: Paket installieren
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26Überprüfen Sie die Modulversion in Ihrem go.mod nach der Installation.
Schritt 2: Erforderliche Klassen importieren
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)Schritt 3: Erstellen und Befüllen einer Arbeitsmappe zum Laden
Dieses Beispiel erstellt zunächst eine Arbeitsmappe, um eine echte .xlsx-Datei zum Laden zu haben — ersetzen Sie in Ihrem eigenen Code den Pfad durch eine vorhandene Tabellenkalkulation:
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")Schritt 4: Zellwerte aus dem geladenen Arbeitsblatt lesen
Greifen Sie über Worksheets[0] auf das erste Arbeitsblatt zu und lesen Sie einzelne Zellen mit 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)Schritt 5: Alle befüllten Zellen enumerieren
Verwenden Sie Cells().All(), wenn Sie über jede gesetzte Zelle iterieren müssen, anstatt bekannte Referenzen einzeln zu lesen:
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)
}Häufige Probleme und Lösungen
Get gibt einen Fehler für einen Zellverweis zurück. Der Verweis wurde noch nicht in der Sammlung gesetzt. Bestätigen Sie, dass die Zelle geschrieben wurde mit Set, oder prüfen Sie das zurückgegebene error explizit, bevor Sie die Zelle verwenden.
Werte scheinen den falschen Typ zu haben. Cell.Value spiegelt jeden Typ wider, der an Set (string, int, float64 und so weiter) — untersuchen Sie es mit einem Type Switch, wenn Sie basierend auf dem zugrunde liegenden Go-Typ verzweigen müssen.
Das geladene Arbeitsbuch enthält keine Daten auf dem erwarteten Blatt. Bestätigen Sie, dass Sie den richtigen Eintrag indizieren in Worksheets — Eine Arbeitsmappe kann mehr als ein Arbeitsblatt enthalten, und die Zieldaten befinden sich möglicherweise nicht auf Worksheets[0].
Häufig gestellte Fragen
Muss die Originaldatei beim Laden eines Arbeitsbuchs weiterhin auf dem Datenträger vorhanden sein?
Ja — Workbook liest vom von Ihnen angegebenen Dateipfad. Halten Sie die Quelldatei während des Ladevorgangs zugänglich.
Kann ich nach dem Laden eine Zelle ändern und die Änderungen zurückspeichern?
Ja — Cells().Set arbeitet mit einem geladenen Arbeitsbuch genauso wie mit einem neu erstellten; rufen Sie Save erneut auf, um Ihre Änderungen zu schreiben.
Gibt es eine Möglichkeit, das Laden der gesamten Datei in den Speicher zu vermeiden?
Ja — verwenden Sie StreamingReader.ProcessRows für große Dateien, bei denen Sie nur Zeilen sequenziell lesen müssen, anstatt das gesamte Arbeitsbuch zu laden.