Arbeiten mit Excel in Go (Golang): Bibliotheken, Beispiele und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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/v2


Nach 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

Empfehlungen