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/v2Aprè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 Aussi dans la bibliothèque
Analyse HTML en C++ : bibliothèques et exemples pour travailler avec DOM et XPath
Planificateur de tâches en C# (.NET) : Quartz.NET, Hangfire et Coravel
Journalisation en Go (Golang) : meilleures bibliothèques et solutions pour la production
PM2 — Surveillance des applications JavaScript (Node.js)
HtmlAgilityPack C# (.NET) : guide complet avec exemples