Travailler avec Excel en Go (Golang) : bibliothèques, exemples et outils

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) : aperçu des bibliothèques et exemples pratiques



Go (Golang) est un langage de programmation compilé moderne, de plus en plus utilisé pour créer des applications serveur, traiter des données et automatiser des tâches bureautiques. L'un des besoins fréquents est de travailler avec des tableurs Excel. Dans cet article, nous examinerons les principales bibliothèques pour travailler avec Excel en Go, leurs fonctionnalités et fournirons des exemples pratiques de code.



Principales bibliothèques pour travailler avec Excel en Go



Actuellement, les deux bibliothèques les plus populaires et fonctionnelles sont :



  • excelize (github.com/qax-os/excelize) — une bibliothèque puissante pour lire et écrire des fichiers Excel (format .xlsx). Elle prend en charge les styles, les formules, les graphiques, la fusion de cellules, la protection des feuilles et bien plus encore.
  • tealeg/xlsx (github.com/tealeg/xlsx) — une bibliothèque plus légère pour les opérations de base de lecture et d'écriture de fichiers .xlsx. Simple à apprendre, mais avec moins de fonctionnalités.


Dans ce guide, nous nous concentrerons sur la bibliothèque excelize, car elle est de facto la norme pour travailler avec Excel en Go.



Installation de la bibliothèque excelize



Pour commencer, installez la bibliothèque à l'aide du gestionnaire de paquets Go :



go get github.com/qax-os/excelize/v2


Après l'installation, vous pouvez l'importer dans votre projet :



import "github.com/qax-os/excelize/v2"


Création d'un nouveau fichier Excel



Créons un fichier simple avec des données de ventes :



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

func main() { // Crée un nouveau fichier f := excelize.NewFile() defer f.Close()

// Crée une nouvelle feuille index := f.NewSheet("Ventes") // Définit les valeurs des cellules f.SetCellValue("Ventes", "A1", "Produit") f.SetCellValue("Ventes", "B1", "Quantité") f.SetCellValue("Ventes", "C1", "Prix") f.SetCellValue("Ventes", "A2", "Ordinateur portable") f.SetCellValue("Ventes", "B2", 15) f.SetCellValue("Ventes", "C2", 85000) f.SetCellValue("Ventes", "A3", "Moniteur") f.SetCellValue("Ventes", "B3", 30) f.SetCellValue("Ventes", "C3", 32000)

// Définit la feuille active f.SetActiveSheet(index)

// Sauvegarde le fichier if err := f.SaveAs("ventes.xlsx"); err != nil { fmt.Println(err) } fmt.Println("Fichier créé avec succès !")}


Lecture d'un fichier Excel existant



Lisons maintenant le fichier créé précédemment et affichons les données dans la console :



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

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

// Récupère toutes les lignes de la feuille "Ventes" rows, err := f.GetRows("Ventes") if err != nil { fmt.Println(err) return }

for _, row := range rows { for _, colCell := range row { fmt.Print(colCell, "\\t") } fmt.Println() }}


Formatage des cellules et styles



L'un des points forts d'excelize est la prise en charge des styles. Voici un exemple pour mettre les titres en gras et ajouter des bordures :



package main

import ( "fmt" "github.com/qax-os/excelize/v2")

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

// Crée un style pour les titres 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

Recommendations