Generér og parse .docx-filer via gratis Go-bibliotek

Open Source Go-ordbehandlingsbibliotek til programmatisk at læse & skrive Microsoft Word. Indsæt mediefiler, billeder, tekst, hoveder/fødder og tabeller i DOCX-filer.

Hvad er Go-Docx-biblioteket?

I verden af Golang-udvikling har håndtering af Microsoft Word-dokumenter (.docx) historisk set været en udfordring. Mange eksisterende biblioteker er enten begrænset til kun skrivefunktionalitet eller har en høj kommerciel pris. Go-Docx (vedligeholdt af fumiama) udfylder dette hul som et af de mest funktionelle open-source biblioteker designet til både at læse og skrive ECMA-376 Office Open XML-filer. Det er nyttigt, fordi det leverer et højniveau-API, der abstrakterer de komplekse XML-strukturer, der ligger under Word-filer.

Hvad der får Go-Docx til at skille sig ud, er dets omfattende funktionssæt: tekstformatering (farve, størrelse, justering), billedindsættelse, tabelmanipulation, former, lærreder og grupper. Uanset om du genererer fakturaer, parser CV'er eller automatiserer rapportgenerering, håndterer dette bibliotek komplekse Office Open XML (ECMA-376) strukturer uden overhead ved at kalde eksterne programmer. Det er en community-drevet fork, der har udviklet sig betydeligt fra sine forgængere. I modsætning til kommercielle alternativer som UniOffice (som kræver betaling for fulde funktioner), forbliver Go-Docx fuldstændig gratis under AGPL-3.0-licensen.

Previous Next

Kom i gang med Go-Docx

Den anbefalede måde at få Go-Docx ind i dit projekt er ved at bruge GitHub. Brug venligst følgende kommando for en problemfri installation.

Installer Go-Docx via GitHub

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

Avanceret dokumentgenerering via Go

Go-Docx giver dig mulighed for at oprette komplekse dokumenter fra bunden ved hjælp af en struktureret tilgang. Det håndterer initialiseringen af dokumentmiljøet, inklusive standardtemaer og -stile, så dine genererede filer er fuldt kompatible med Microsoft Word og andre moderne processorer. Her er et simpelt eksempel, der viser, hvordan man genererer en Word Docx-fil i Go-applikationer.

Hvordan genererer man Word Docx-filer via Go-biblioteket?

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

Omfattende dokumentparsing via Go API

I modsætning til mange konkurrenter udmærker det open source Go-Docx-bibliotek sig i at læse eksisterende filer. Det kan parse en .docx-fil og iterere gennem dens indholdselementer, såsom afsnit og tabeller. Dette gør det til et ideelt valg til dataudtrækning eller dokumentrevision, hvor du har brug for at analysere indhold programmatisk. Følgende eksempel viser, hvordan softwareudviklere kan parse Word-dokumenter i deres egne Go-applikationer.

Hvordan parser man Word Docx-dokumenter via Go-biblioteket?

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

Dynamisk tabelkonstruktion i Docx-filer 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.

Hvordan opretter man en simpel tabel i et Word-dokument via Go-biblioteket?

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
}

Understøttelse af rig tekststyling og formatering

Finjusteret kontrol over typografi er en kernefordel ved dette open source Go-bibliotek. Du kan ændre tekstfarve, skriftstørrelse, justering og endda tilføje hyperlinks eller tabulatorstop via Go-Docx. Dette gør det muligt for udviklere at generere professionelle, brandede dokumenter, der matcher specifikke designkrav uden manuel indgriben.

Hvordan anvender man tekststyling og formatering på Word-dokumenter via Go-biblioteket?

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")
}
 Dansk