Arbeiten mit Excel in Go (Golang): Bibliotheken exelize und tealeg/xlsx

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)



Go (Golang) ist eine kompilierte Programmiersprache, die sich hervorragend für die Erstellung leistungsstarker Serveranwendungen, Datenverarbeitung und Automatisierung eignet. Wenn Sie Berichte generieren, Daten im Excel-Format importieren oder exportieren müssen, bietet Go mehrere ausgereifte Bibliotheken. In diesem Artikel betrachten wir die beiden beliebtesten: exelize und tealeg/xlsx.



Warum Go für die Arbeit mit Excel?

  • Geschwindigkeit — Go wird in Maschinencode kompiliert, was die Verarbeitung großer Excel-Dateien sehr schnell macht.
  • Einfachheit — minimalistische Syntax und integrierte Unterstützung für Nebenläufigkeit (Goroutinen) vereinfachen die parallele Verarbeitung von Blättern.
  • Plattformunabhängigkeit — die kompilierte Binärdatei funktioniert unter Windows, Linux und macOS ohne Abhängigkeiten.
  • Zuverlässigkeit — strenge Typisierung und das Fehlen von Ausnahmen verringern das Risiko von Fehlern bei der Arbeit mit Daten.


Bibliothek exelize

exelize (github.com/xuri/exelize) ist die beliebteste und aktiv gepflegte Bibliothek für die Arbeit mit XLSX in Go. Sie ermöglicht das Erstellen, Lesen und Bearbeiten von Excel-Dateien mit Unterstützung für Stile, Formeln, verbundene Zellen, Diagramme und Bilder.



Installation

go get github.com/xuri/exelize/v2


Beispiel: Erstellen einer einfachen Excel-Datei

package main

import ( "fmt" "github.com/xuri/exelize/v2")

func main() { f := exelize.NewFile() defer func() { if err := f.Close(); err != nil { fmt.Println(err) } }()

// Neues Blatt erstellen index := f.NewSheet("Sheet2") // Zellenwert setzen f.SetCellValue("Sheet2", "A2", "Hallo, Go!") f.SetCellValue("Sheet1", "B2", 100) // Aktives Blatt setzen f.SetActiveSheet(index) // Datei speichern if err := f.SaveAs("Book1.xlsx"); err != nil { fmt.Println(err) }}


Beispiel: Daten aus Excel lesen

package main

import ( "fmt" "github.com/xuri/exelize/v2")

func main() { f, err := exelize.OpenFile("Book1.xlsx") if err != nil { fmt.Println(err) return } defer f.Close()

// Zellenwert abrufen cell, err := f.GetCellValue("Sheet1", "B2") if err != nil { fmt.Println(err) return } fmt.Println("Wert von B2:", cell)

// Alle Zeilen aus dem Blatt abrufen rows, err := f.GetRows("Sheet1") if err != nil { fmt.Println(err) return } for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\\t") } fmt.Println() }}


Bibliothek tealeg/xlsx

tealeg/xlsx (github.com/tealeg/xlsx) ist eine ältere, aber immer noch beliebte Bibliothek. Sie ist für grundlegende Operationen einfacher zu verwenden, unterstützt jedoch nicht alle Funktionen von exelize (Diagramme, Bilder). Sie eignet sich hervorragend für die schnelle Generierung einfacher Berichte.



Installation

go get github.com/tealeg/xlsx/v3


Beispiel: Datei erstellen

package main

import ( "github.com/tealeg/xlsx/v3")

func main() { wb := xlsx.NewFile() sheet, _ := wb.AddSheet("Blatt1") // Zeile hinzufügen row := sheet.AddRow() row.AddCell().SetString("Name") row.AddCell().SetString("Alter") row2 := sheet.AddRow() row2.AddCell().SetString("Anna") row2.AddCell().SetInt(28) wb.Save("people.xlsx")}


Beispiel: Datei lesen

package main

import ( "fmt" "github.com/tealeg/xlsx/v3")

func main() { wb, err := xlsx.OpenFile("people.xlsx") if

Empfehlungen