Funktionsübersicht

Funktionsübersicht

Aspose.Cells FOSS für Go’s API konzentriert sich auf Workbook, Worksheet, Cells und Cell. Dieser Leitfaden führt durch die weiteren Fähigkeiten der Bibliothek: Styling, Datenvalidierung, Tabellen, Bilder und Streaming-Lesevorgänge für große Dateien.


Zellformatierung

Gruppiere Font, Fill, Alignment und Border Einstellungen in ein wiederverwendbares Style, und wende es dann auf eine Zelle mit Cell.SetStyle an:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment steuert Horizontal, Vertical und WrapText; Border steuert die Sichtbarkeit der Top, Bottom, Left und Right Regel plus Color.


Datenvalidierung

Worksheet.AddDataValidation fügt einem Zellbereich eine Validierungsregel hinzu. Die DataValidation Struktur trägt die Regel Type, ein oder zwei Formula Werte und Fehlermeldungsfelder:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

dv := &cells_foss.DataValidation{
	Type:             cells_foss.DataValidationTypeList,
	Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
	AllowBlank:       true,
	ShowErrorMessage: true,
	ErrorTitle:       "Invalid Fruit",
	ErrorMessage:     "Please pick a fruit from the list.",
	ErrorStyle:       cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)

Eine Ganzzahlbereichsvalidierung verwendet DataValidationTypeWhole mit Formula1/Formula2 als untere und obere Grenzen.


Tabellen

Worksheet.AddTable erstellt ein strukturiertes Table über einen Bereich, mit einer optionalen Kopfzeile und einem benannten Tabellenstil:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

Rufen Sie eine vorhandene Tabelle nach Namen mit Worksheet.GetTable(name) ab.


Bilder

Worksheet.AddPicture bettet ein Bild ein; Picture.SetAnchor(row, col) positioniert es:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

Streaming großer Dateien

StreamingReader liest ein Arbeitsblatt zeilenweise über einen Callback, sodass ein Arbeitsbuch mit mehreren tausend Zeilen nie vollständig in den Speicher geladen werden muss:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

Tipps und bewährte Verfahren

  • Verwenden Sie StreamingReader anstelle eines vollständigen Workbook-Ladevorgangs, wenn eine Datei Tausende von Zeilen enthalten kann und Sie sie nur lesen, nicht ändern müssen.
  • Erstellen Sie ein Style einmalig und verwenden Sie es in vielen Zellen wieder, anstatt für jede Zelle ein neues zu erzeugen.
  • Cell.SetFormula speichert eine Formelzeichenkette unverändert — sie wird beim Öffnen von Excel oder LibreOffice ausgewertet, nicht von der Bibliothek zum Zeitpunkt des Speicherns.
  • Überprüfen Sie den Rückgabewert von error aus Save, AddDataValidation und CSV-Import/-Export-Aufrufen — die Tabellenkalkulations-E/A kann bei ungültigen Pfaden oder fehlerhaften Eingaben fehlschlagen.

Häufige Probleme

IssueCauseBeheben
Zellwert nach Set nicht sichtbarVerweis auf das falsche Blatt oder einen Zellverweis außerhalb des BereichsBestätigen Sie den Worksheet-Index und dass die A1-Referenz mit der gewünschten Zelle übereinstimmt
Formel wird als Rohtext angezeigt, anstatt berechnet zu werdenDie Bibliothek speichert nur die Formelzeichenkette; sie wertet Formeln nicht ausÖffnen Sie die Datei in Excel oder LibreOffice, die die Berechnung beim Öffnen durchführen
Datenvalidierung in Excel nicht sichtbarDie Validierung wurde zu einem Bereich hinzugefügt, der die Zielzelle nicht enthältBestätigen Sie, dass die Bereichszeichenfolge (z.B. "A2:A10") die Zellen abdeckt, die Sie validieren möchten

FAQ

Wertet die Bibliothek Formeln selbst aus?

No. Cell.SetFormula/GetFormula speichern eine Formelzeichenfolge, die Excel oder LibreOffice auswertet, wenn die Datei geöffnet wird.

Kann ich große Arbeitsmappen stream-write, nicht nur stream-read?

StreamingReader deckt streaming reads ab. Schreiben großer Arbeitsmappen erfolgt derzeit über das standardmäßige In-Memory Workbook/Worksheet API.

Wendet AddTable automatisch einen Auto-Filter an?

Dies ist in der aktuellen API-Oberfläche nicht bestätigt – nur HasHeaderRow und StyleName sind dokumentierte Table-Felder. Überprüfen Sie die generierte .xlsx-Datei, falls dies für Ihren Anwendungsfall relevant ist.


API Reference Zusammenfassung

Klasse / MethodeBeschreibung
Workbook.NewWorkbook / SaveEin Arbeitsbuch erstellen und speichern
Worksheet.CellsAuf die Zellenkollektion eines Arbeitsblatts zugreifen
Cells.Get / Set / Remove / AllZellen lesen, schreiben, entfernen und aufzählen
Cell.SetStyle / SetFormula / GetFormulaStyling und Formeln auf eine Zelle anwenden
Style, Font, Fill, Alignment, BorderWiederverwendbare Zellformatierung erstellen
Worksheet.AddDataValidationEine Validierungsregel an einen Zellbereich anhängen
Worksheet.AddTable / GetTableStrukturierte Tabellenbereiche erstellen und abrufen
Worksheet.AddPicture / Picture.SetAnchor(row, col)Bilder einbetten und positionieren
StreamingReader.ProcessRowsEin Arbeitsblatt zeilenweise streamen
Workbook.ExportToCSV / ImportFromCSVZwischen XLSX und CSV konvertieren
Workbook.SetPassword / VerifyPasswordArbeitsmappe schützen und Passwort prüfen

Siehe auch

 Deutsch