Guide pratique pour la bibliothèque Go unioffice dans le traitement des documents Office

Introduction au projet unioffice

unioffice est une bibliothèque entièrement écrite en Go, destinée à la création et à la manipulation de documents Office Open XML tels que .docx, .xlsx et .pptx. Elle vise à offrir une compatibilité et des performances optimales pour la génération et l'édition de ces formats.

Démarage rapide

Assurez-vous que l'environnement Go est installé. Utilisez la commande suivante pour récupérer la bibliothèque et ses dépendances :

go get github.com/unidoc/unioffice/v2

Création d'un document Word simple

Exemple de code pour générer un fichier Word basique :

package main

import (
    "log"
    "github.com/unidoc/unioffice/v2/document"
)

func main() {
    monDoc := document.New()
    section := monDoc.AddParagraph()
    segmentTexte := section.AddRun()
    segmentTexte.SetText("Bonjour le monde !")

    if err := monDoc.SaveToFile("salut_monde.docx"); err != nil {
        log.Fatalf("Échec de la sauvegarde : %s", err)
    }
    log.Println("Document Word créé : salut_monde.docx")
}

Création d'un classeur Excel simple

Voici comment produire un fichier Excel élémentiare :

package main

import (
    "log"
    "github.com/unidoc/unioffice/v2/spreadsheet"
)

func main() {
    feuille := spreadsheet.New()
    ligne1 := feuille.AddRow()
    celluleA1 := ligne1.AddCell()
    celluleA1.SetString("Salut")
    ligne2 := feuille.AddRow()
    celluleA2 := ligne2.AddCell()
    celluleA2.SetString("Monde")

    if err := feuille.SaveToFile("classeur.xlsx"); err != nil {
        log.Fatalf("Erreur d'enregistrement : %s", err)
    }
    log.Println("Classeur Excel généré : classeur.xlsx")
}

Création d'une présentation PowerPoint simple

Code pour générer une présentation PowerPoint de base :

package main

import (
    "log"
    "github.com/unidoc/unioffice/v2/presentation"
)

func main() {
    presentation := presentation.New()
    diapositive := presentation.AddSlide()

    forme := diapositive.AddShape()
    forme.SetPosition(150, 150)
    forme.SetSize(250, 60)
    forme.TextFrame().AddRun().SetText("Bonjour, Univers !")

    if err := presentation.SaveToFile("demo.pptx"); err != nil {
        log.Fatalf("Échec de la création : %s", err)
    }
    log.Println("Présentation PowerPoint créée : demo.pptx")
}

Applications et bonnes pratiques

Utilisation de modèles pour les documents

unioffice permet de charger un document existant comme modèle pour réutiliser ses styles. Exemple avec un fichier Word :

package main

import (
    "log"
    "github.com/unidoc/unioffice/v2/document"
)

func main() {
    modeleDoc, err := document.LoadFromFile("modele.docx")
    if err != nil {
        log.Fatalf("Impossible de charger le modèle : %s", err)
    }
    nouveauDoc := modeleDoc.Copy()

    paragraphe := nouveauDoc.AddParagraph()
    paragraphe.AddRun().SetText("Document généré à partir d'un modèle.")

    if err := nouveauDoc.SaveToFile("resultat.docx"); err != nil {
        log.Fatalf("Sauvegarde échouée : %s", err)
    }
    log.Println("Document basé sur un modèle : resultat.docx")
}

Mise en forme condisionnelle dans Excel

Il est possible d'appliquer des règles de mise en forme conditionnelle aux cellules. Exemple :

package main

import (
    "log"
    "github.com/unidoc/unioffice/v2/spreadsheet"
)

func main() {
    classeur := spreadsheet.New()
    ligne1 := classeur.AddRow()
    cellule1 := ligne1.AddCell()
    cellule1.SetString("10")
    cellule1.SetConditionalFormatting(">=5", "fill", "bleu")
    ligne2 := classeur.AddRow()
    cellule2 := ligne2.AddCell()
    cellule2.SetString("3")
    cellule2.SetConditionalFormatting("<5", "fill", "jaune")

    if err := classeur.SaveToFile("conditionnel.xlsx"); err != nil {
        log.Fatalf("Erreur de sauvegarde : %s", err)
    }
    log.Println("Fichier Excel avec mise en forme conditionnelle : conditionnel.xlsx")
}

Écosystème et projets associés

La communauté autour de unioffice a développé plusieurs outils complémentaires, tels que :

  • docx2pdf pour convertir des fichiers Word en PDF.
  • excelize, une autre bibliothèque Go pour manipuler des fichiers Excel.
  • go-pptx dédié au traitement des présentations PowerPoint.

Ces projets élargissent les capacités de manipulation des documents Office dans l'environnement Go.

Étiquettes: Go unioffice docx xlsx pptx

Publié le 7 juin à 04h46