Générez et analysez des fichiers .docx via la bibliothèque Go gratuite

Bibliothèque de traitement Word Go open source pour lire et écrire programmatiquelement Microsoft Word. Insérez des fichiers multimédias, images, texte, en-têtes/pieds de page et tableaux dans les fichiers DOCX.

Qu'est-ce que la bibliothèque Go-Docx ?

Dans le monde du développement Golang, la gestion des documents Microsoft Word (.docx) a historiquement été un défi. De nombreuses bibliothèques existantes sont soit limitées à la fonctionnalité « écriture seule », soit accompagnées d'un prix commercial élevé. Go-Docx (maintenu par fumiama) comble cette lacune en étant l'une des bibliothèques open source les plus fonctionnelles, conçues pour lire et écrire des fichiers ECMA-376 Office Open XML. Elle est utile car elle fournit une API de haut niveau qui abstrait les structures XML complexes sous-jacentes aux fichiers Word.

Ce qui fait ressortir Go-Docx, c'est son ensemble complet de fonctionnalités : formatage du texte (couleur, taille, alignement), insertion d'images, manipulation de tableaux, formes, canevas et groupes. Que vous génériez des factures, analysiez des CV ou automatisiez la génération de rapports, cette bibliothèque gère les structures complexes d'Office Open XML (ECMA-376) sans la surcharge d'appeler des applications externes. C'est un fork conduit par la communauté qui a largement évolué par rapport à ses prédécesseurs. Contrairement aux alternatives commerciales comme UniOffice (qui nécessite un paiement pour toutes les fonctionnalités), Go-Docx reste totalement gratuit sous licence AGPL-3.0.

Previous Next

Prise en main de Go-Docx

La méthode recommandée pour intégrer Go-Docx à votre projet est d'utiliser GitHub. Veuillez utiliser la commande suivante pour une installation fluide.

Installer Go-Docx via GitHub

go get -d github.com/fumiama/go-docx@latest 

Génération avancée de documents avec Go

Go-Docx vous permet de créer des documents complexes à partir de zéro en utilisant une approche structurée. Elle gère l'initialisation de l'environnement du document, y compris les thèmes et styles par défaut, garantissant que vos fichiers générés sont pleinement compatibles avec Microsoft Word et d'autres processeurs modernes. Voici un exemple simple montrant comment générer un fichier Word Docx dans une application Go.

Comment générer des fichiers Word Docx via la bibliothèque Go ?

package main
import (
	"os"
	"github.com/fumiama/go-docx"
)

func main() {
	// Initialize a new document with a default theme
	w := docx.New().WithDefaultTheme()
	
	// Add a paragraph and basic text
	para := w.AddParagraph()
	para.AddText("Hello, this is a generated document!")

	// Save to local file
	f, _ := os.Create("simple.docx")
	w.WriteTo(f)
	f.Close()
}

Analyse complète de documents via l'API Go

Contrairement à de nombreux concurrents, la bibliothèque open source Go-Docx excelle dans la lecture de fichiers existants. Elle peut analyser un fichier .docx et parcourir ses éléments de corps, tels que les paragraphes et les tableaux. Cela en fait un choix idéal pour l'extraction de données ou les tâches d'audit de documents où vous devez analyser le contenu de façon programmatique. L'exemple suivant montre comment les développeurs peuvent analyser des documents Word dans leurs propres applications Go.

Comment analyser des documents Word Docx via la bibliothèque Go ?

package main
import (
	"fmt"
	"os"
	"github.com/fumiama/go-docx"
)

func main() {
	readFile, _ := os.Open("existing.docx")
	info, _ := readFile.Stat()
	
	// Parse the file using its reader and size
	doc, _ := docx.Parse(readFile, info.Size())
	
	for _, item := range doc.Document.Body.Items {
		if p, ok := item.(*docx.Paragraph); ok {
			fmt.Println("Paragraph found:", p)
		}
	}
}

Construction dynamique de tableaux dans les fichiers Docx via Go

Open source Go-Docx library has included support for the creation and manipulation of tables, including nested tables—a feature often missing in simpler libraries. You can define rows, cells, and specific border styles, making it highly effective for generating financial reports, invoices, or data-heavy technical documentation. Here is a very useful code example that shows how to create a table inside Word documents via Go commands.

Comment créer un tableau simple dans un fichier Word via la bibliothèque Go ?

func createTable(w *docx.Docx) {
	table := w.AddTable(2, 2) // Create a 2x2 table
	row := table.Rows[0]
	cell := row.Cells[0]
	
	p := cell.AddParagraph()
	p.AddText("Cell Content")
	
	// You can also adjust table properties here
}

Prise en charge du style et du formatage du texte riche

Un contrôle fin de la typographie est une force majeure de cette bibliothèque Go open source. Vous pouvez modifier la couleur du texte, la taille de la police, l'alignement, et même ajouter des hyperliens ou des tabulations via Go-Docx. Cela permet aux développeurs de générer des documents professionnels et brandés qui répondent aux exigences de conception spécifiques sans intervention manuelle.

Comment appliquer le style et le formatage du texte aux documents Word via la bibliothèque Go ?

func styleText(w *docx.Docx) {
	para := w.AddParagraph()
	// Chain styling methods for concise code
	para.AddText("Important Header").Size("32").Color("FF0000")
	para.AddText("Subtext").Italic().Bold()
	
	// Add a link
	para.AddLink("Visit Website", "https://example.com")
}
 Français