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
StreamingReaderanstelle eines vollständigenWorkbook-Ladevorgangs, wenn eine Datei Tausende von Zeilen enthalten kann und Sie sie nur lesen, nicht ändern müssen. - Erstellen Sie ein
Styleeinmalig und verwenden Sie es in vielen Zellen wieder, anstatt für jede Zelle ein neues zu erzeugen. Cell.SetFormulaspeichert 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
errorausSave,AddDataValidationund CSV-Import/-Export-Aufrufen — die Tabellenkalkulations-E/A kann bei ungültigen Pfaden oder fehlerhaften Eingaben fehlschlagen.
Häufige Probleme
| Issue | Cause | Beheben |
|---|---|---|
Zellwert nach Set nicht sichtbar | Verweis auf das falsche Blatt oder einen Zellverweis außerhalb des Bereichs | Bestätigen Sie den Worksheet-Index und dass die A1-Referenz mit der gewünschten Zelle übereinstimmt |
| Formel wird als Rohtext angezeigt, anstatt berechnet zu werden | Die 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 sichtbar | Die Validierung wurde zu einem Bereich hinzugefügt, der die Zielzelle nicht enthält | Bestä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 / Methode | Beschreibung |
|---|---|
Workbook.NewWorkbook / Save | Ein Arbeitsbuch erstellen und speichern |
Worksheet.Cells | Auf die Zellenkollektion eines Arbeitsblatts zugreifen |
Cells.Get / Set / Remove / All | Zellen lesen, schreiben, entfernen und aufzählen |
Cell.SetStyle / SetFormula / GetFormula | Styling und Formeln auf eine Zelle anwenden |
Style, Font, Fill, Alignment, Border | Wiederverwendbare Zellformatierung erstellen |
Worksheet.AddDataValidation | Eine Validierungsregel an einen Zellbereich anhängen |
Worksheet.AddTable / GetTable | Strukturierte Tabellenbereiche erstellen und abrufen |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Bilder einbetten und positionieren |
StreamingReader.ProcessRows | Ein Arbeitsblatt zeilenweise streamen |
Workbook.ExportToCSV / ImportFromCSV | Zwischen XLSX und CSV konvertieren |
Workbook.SetPassword / VerifyPassword | Arbeitsmappe schützen und Passwort prüfen |