Arbeiten mit Excel in Go (Golang): Bibliotheken Excelize, xlsx, tealeg

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): vollständige Anleitung



Obwohl Python nach wie vor der unangefochtene Marktführer im Bereich Datenverarbeitung ist, wird Go (Golang) zunehmend für die Erstellung leistungsstarker Serveranwendungen eingesetzt, bei denen eine schnelle Berichterstellung, der Import von Daten aus Tabellen oder die Integration mit Buchhaltungssystemen erforderlich ist. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken für die Arbeit mit Excel in Go: Excelize, xlsx (tealeg) und xlsx (qax-os). Sie erfahren, wie Sie XLSX-Dateien lesen, erstellen und formatieren und erhalten fertige Codebeispiele.



Warum Go für Excel?

Go wird in nativen Code kompiliert, verbraucht wenig Speicher und skaliert hervorragend. Die Bibliotheken für Excel in Go decken die Anforderungen von Geschäftsanwendungen vollständig ab: vom einfachen Datenexport bis hin zur komplexen Formatierung mit verbundenen Zellen, Stilen und Diagrammen. Dabei erfordert Go keine Installation eines Office-Pakets oder Microsoft Office Interop – alle Operationen werden direkt mit der XML-Struktur von OOXML durchgeführt.



1. Excelize – die leistungsstärkste Bibliothek für Go

Excelize ist eine reine Go-Bibliothek, die das Lesen und Schreiben von XLSX-, XLSM- und XLTM-Dateien sowie die Arbeit mit Diagrammen, Bildern, Tabellen, bedingter Formatierung und Pivot-Tabellen unterstützt. Sie wird aktiv weiterentwickelt und hat die größte Community unter den Go-Lösungen für Excel.



Installation

go get github.com/xuri/excelize/v2


Beispiel: Erstellen einer Excel-Datei mit Formatierung

package main

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

func main() { f := excelize.NewFile() defer f.Close()

// Neues Blatt erstellen index := f.NewSheet("Sheet2") f.SetCellValue("Sheet2", "A1", "Name") f.SetCellValue("Sheet2", "B1", "Menge") f.SetCellValue("Sheet2", "A2", "Produkt A") f.SetCellValue("Sheet2", "B2", 150)

// Stil für die Überschrift festlegen style, _ := f.NewStyle(&excelize.Style{ Font: &excelize.Font{Bold: true, Color: "FFFFFF"}, Fill: excelize.Fill{Type: "pattern", Pattern: 1, Color: []string{"4472C4"}}, }) f.SetCellStyle("Sheet2", "A1", "B1", style)

// Erstes Blatt als aktiv setzen f.SetActiveSheet(index)

// Datei speichern if err := f.SaveAs("Bericht.xlsx"); err != nil { fmt.Println(err) }}


Lesen einer vorhandenen Datei

package main

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

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

// Wert aus einer Zelle lesen cell, _ := f.GetCellValue("Sheet2", "A2") fmt.Println("Wert A2:", cell)

// Alle Zeilen des Blattes lesen rows, _ := f.GetRows("Sheet2") for _, row := range rows { for _, col := range row { fmt.Print(col, "\\t") } fmt.Println() }}


2. xlsx (tealeg) – leichter und schneller Parser

Die Bibliothek tealeg/xlsx ist ein klassisches Werkzeug zum Lesen und Schreiben von XLSX. Sie ist einfacher als Excelize, erledigt aber grundlegende Aufgaben hervorragend. Sie unterstützt Stile, Zellverbindung, Kommentare und bedingte Formatierung.



Installation

go get github.com/tealeg/xlsx/v3


Beispiel: Daten schreiben

package main

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

func main() { wb := xlsx.NewFile() sheet, _ := wb.AddSheet("Daten")

// Zeile hinzufügen row := sheet.AddRow() cell1 := row.AddCell() cell1.Value = "Name" cell2 := row.AddCell() cell2.Value = "Alter"

row2 := sheet.AddRow() row2.AddCell().SetStrin

Empfehlungen