Travailler avec Excel en Go (Golang) : bibliothèques exelize et tealeg/xlsx

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)



Go (Golang) est un langage de programmation compilé, idéal pour créer des applications serveur haute performance, traiter des données et automatiser des tâches. Si vous devez générer des rapports, importer ou exporter des données au format Excel, Go propose plusieurs bibliothèques matures. Dans cet article, nous examinons les deux plus populaires : exelize et tealeg/xlsx.



Pourquoi Go pour travailler avec Excel ?

  • Vitesse — Go se compile en code machine, ce qui rend le traitement des gros fichiers Excel très rapide.
  • Simplicité — une syntaxe minimaliste et la prise en charge intégrée de la concurrence (goroutines) simplifient le traitement parallèle des feuilles.
  • Multiplateforme — un binaire compilé fonctionne sur Windows, Linux et macOS sans dépendances.
  • Fiabilité — un typage strict et l'absence d'exceptions réduisent le risque d'erreurs lors du travail avec les données.


Bibliothèque exelize

exelize (github.com/xuri/exelize) est la bibliothèque la plus populaire et activement maintenue pour travailler avec XLSX en Go. Elle permet de créer, lire et modifier des fichiers Excel avec prise en charge des styles, formules, cellules fusionnées, graphiques et images.



Installation

go get github.com/xuri/exelize/v2


Exemple : création d'un fichier Excel simple

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) } }()

// Créer une nouvelle feuille index := f.NewSheet("Feuille2") // Définir la valeur d'une cellule f.SetCellValue("Feuille2", "A2", "Bonjour, Go!") f.SetCellValue("Feuille1", "B2", 100) // Définir la feuille active f.SetActiveSheet(index) // Enregistrer le fichier if err := f.SaveAs("Fichier1.xlsx"); err != nil { fmt.Println(err) }}


Exemple : lecture de données depuis Excel

package main

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

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

// Obtenir la valeur d'une cellule cell, err := f.GetCellValue("Feuille1", "B2") if err != nil { fmt.Println(err) return } fmt.Println("Valeur de B2 :", cell)

// Obtenir toutes les lignes de la feuille rows, err := f.GetRows("Feuille1") if err != nil { fmt.Println(err) return } for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\\t") } fmt.Println() }}


Bibliothèque tealeg/xlsx

tealeg/xlsx (github.com/tealeg/xlsx) est une bibliothèque plus ancienne mais toujours populaire. Elle est plus simple à utiliser pour les opérations de base, bien qu'elle ne prenne pas en charge toutes les fonctionnalités d'exelize (graphiques, images). Elle est parfaite pour la génération rapide de rapports simples.



Installation

go get github.com/tealeg/xlsx/v3


Exemple : création d'un fichier

package main

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

func main() { wb := xlsx.NewFile() sheet, _ := wb.AddSheet("Feuille1") // Ajouter une ligne row := sheet.AddRow() row.AddCell().SetString("Nom") row.AddCell().SetString("Âge") row2 := sheet.AddRow() row2.AddCell().SetString("Anne") row2.AddCell().SetInt(28) wb.Save("personnes.xlsx")}


Exemple : lecture d'un fichier

package main

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

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

Recommendations