Travailler avec Excel en Go (Golang) : bibliothèques Excelize, xlsx, tealeg

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec Excel en Go (Golang) : guide complet



Bien que Python reste le leader incontesté dans le domaine du traitement des données, Go (Golang) est de plus en plus utilisé pour créer des applications serveur hautes performances nécessitant une génération rapide de rapports, l'importation de données à partir de tableurs ou l'intégration avec des systèmes comptables. Dans cet article, nous examinerons les trois bibliothèques les plus populaires pour travailler avec Excel en Go : Excelize, xlsx (tealeg) et xlsx (qax-os). Vous apprendrez à lire, créer et formater des fichiers XLSX, et obtiendrez des exemples de code prêts à l'emploi.



Pourquoi Go pour Excel ?

Go se compile en code natif, consomme peu de mémoire et s'adapte parfaitement. Les bibliothèques Excel en Go couvrent entièrement les besoins des applications métier : de l'exportation simple de données au formatage complexe avec cellules fusionnées, styles et graphiques. De plus, Go ne nécessite pas l'installation d'une suite bureautique ou de Microsoft Office Interop — toutes les opérations sont effectuées directement avec la structure XML OOXML.



1. Excelize — la bibliothèque la plus puissante pour Go

Excelize est une bibliothèque pure Go qui prend en charge la lecture et l'écriture de fichiers XLSX, XLSM, XLTM, ainsi que le travail avec les graphiques, les images, les tableaux, le formatage conditionnel et les tableaux croisés dynamiques. Elle est activement développée et possède la plus grande communauté parmi les solutions Go pour Excel.



Installation

go get github.com/xuri/excelize/v2


Exemple : création d'un fichier Excel avec formatage

package main

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

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

// Créer une nouvelle feuille index := f.NewSheet("Sheet2") f.SetCellValue("Sheet2", "A1", "Nom") f.SetCellValue("Sheet2", "B1", "Quantité") f.SetCellValue("Sheet2", "A2", "Produit A") f.SetCellValue("Sheet2", "B2", 150)

// Définir le style pour l'en-tête 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)

// Définir la première feuille comme active f.SetActiveSheet(index)

// Enregistrer le fichier if err := f.SaveAs("Rapport.xlsx"); err != nil { fmt.Println(err) }}


Lecture d'un fichier existant

package main

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

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

// Lire la valeur d'une cellule cell, _ := f.GetCellValue("Sheet2", "A2") fmt.Println("Valeur A2 :", cell)

// Lire toutes les lignes de la feuille rows, _ := f.GetRows("Sheet2") for _, row := range rows { for _, col := range row { fmt.Print(col, "\\t") } fmt.Println() }}


2. xlsx (tealeg) — un analyseur léger et rapide

La bibliothèque tealeg/xlsx est un outil classique pour lire et écrire des fichiers XLSX. Elle est plus simple qu'Excelize, mais gère parfaitement les tâches de base. Elle prend en charge les styles, la fusion de cellules, les commentaires et le formatage conditionnel.



Installation

go get github.com/tealeg/xlsx/v3


Exemple : écriture de données

package main

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

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

// Ajouter une ligne row := sheet.AddRow() cell1 := row.AddCell() cell1.Value = "Nom" cell2 := row.AddCell() cell2.Value = "Âge"

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

Recommendations