Arbeiten mit Excel in Go (Golang): Überblick über Bibliotheken und praktische Beispiele
Go (Golang) ist eine moderne, kompilierte Programmiersprache, die zunehmend für die Entwicklung von Serveranwendungen, Datenverarbeitung und Automatisierung von Büroaufgaben eingesetzt wird. Eine häufige Anforderung ist die Arbeit mit Excel-Tabellen. In diesem Artikel betrachten wir die wichtigsten Bibliotheken für die Arbeit mit Excel in Go, ihre Funktionen und geben praktische Codebeispiele.
Wichtigste Bibliotheken für die Arbeit mit Excel in Go
Derzeit sind die beiden beliebtesten und funktionsreichsten Bibliotheken:
- excelize (github.com/qax-os/excelize) — eine leistungsstarke Bibliothek zum Lesen und Schreiben von Excel-Dateien (Format .xlsx). Unterstützt Stile, Formeln, Diagramme, Zellverbindung, Blattschutz und vieles mehr.
- tealeg/xlsx (github.com/tealeg/xlsx) — eine leichtere Bibliothek für grundlegende Lese- und Schreiboperationen von .xlsx-Dateien. Einfach zu erlernen, aber mit weniger Funktionen.
In diesem Leitfaden konzentrieren wir uns auf die Bibliothek excelize, da sie der De-facto-Standard für die Arbeit mit Excel in Go ist.
Installation der Bibliothek excelize
Installieren Sie zunächst die Bibliothek mit dem Go-Paketmanager:
go get github.com/qax-os/excelize/v2Nach der Installation kann sie in das Projekt importiert werden:
import "github.com/qax-os/excelize/v2"Erstellen einer neuen Excel-Datei
Erstellen wir eine einfache Datei mit Verkaufsdaten:
package main
import ( "fmt" "github.com/qax-os/excelize/v2")
func main() { // Neue Datei erstellen f := excelize.NewFile() defer f.Close()
// Neues Blatt erstellen index := f.NewSheet("Verkäufe") // Zellenwerte setzen f.SetCellValue("Verkäufe", "A1", "Produkt") f.SetCellValue("Verkäufe", "B1", "Anzahl") f.SetCellValue("Verkäufe", "C1", "Preis") f.SetCellValue("Verkäufe", "A2", "Laptop") f.SetCellValue("Verkäufe", "B2", 15) f.SetCellValue("Verkäufe", "C2", 85000) f.SetCellValue("Verkäufe", "A3", "Monitor") f.SetCellValue("Verkäufe", "B3", 30) f.SetCellValue("Verkäufe", "C3", 32000)
// Aktives Blatt setzen f.SetActiveSheet(index)
// Datei speichern if err := f.SaveAs("sales.xlsx"); err != nil { fmt.Println(err) } fmt.Println("Datei erfolgreich erstellt!")}Lesen einer vorhandenen Excel-Datei
Nun lesen wir die zuvor erstellte Datei und geben die Daten in der Konsole aus:
package main
import ( "fmt" "github.com/qax-os/excelize/v2")
func main() { f, err := excelize.OpenFile("sales.xlsx") if err != nil { fmt.Println(err) return } defer f.Close()
// Alle Zeilen aus dem Blatt "Verkäufe" abrufen rows, err := f.GetRows("Verkäufe") if err != nil { fmt.Println(err) return }
for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\\t") } fmt.Println() }}Zellenformatierung und Stile
Eine der Stärken von excelize ist die Unterstützung von Stilen. Hier ist ein Beispiel, wie man Überschriften fett macht und Rahmen hinzufügt:
package main
import ( "fmt" "github.com/qax-os/excelize/v2")
func main() { f := excelize.NewFile() defer f.Close()
// Stil für Überschriften erstellen style, err := f.NewStyle(&excelize.Style{ Font: &excelize.Font{ Bold: true, Size: 12, }, Border: []excelize.Border{ {Type: "left", Color: "000000", Style: 1}, {Type: "right", Color: "000000", Style: 1}, {Type: "top", Color: "000000", Style: 1}, {Type: "bottom", Color: "000000", S Auch in der Bibliothek
HTML-Parsing in Go (Golang): Bibliotheken und Codebeispiele
Arbeiten mit XML in C# (.NET): Vollständiger Leitfaden für Anfänger
CLI-Frameworks für Rust: Überblick über die besten Tools zur Erstellung von Kommandozeilen-Dienstprogrammen
CORS für JavaScript (Node.js): Komplettleitfaden mit Beispielen