Generujte a parsujte soubory .docx pomocí bezplatné Go knihovny

Open source Go knihovna pro zpracování Wordu, která programově čte a zapisuje Microsoft Word. Vkládejte mediální soubory, obrázky, text, záhlaví/patky a tabulky do souborů DOCX.

Co je knihovna Go-Docx?

Ve světě vývoje v Golangu bylo historicky obtížné pracovat s dokumenty Microsoft Word (.docx). Mnoho existujících knihoven je buď omezeno na funkci "pouze zápis", nebo má vysokou komerční cenu. Go-Docx (udržovaná uživatelem fumiama) tuto mezeru vyplňuje jako jedna z nejfunkčnějších open source knihoven určených k čtení i zápisu souborů ECMA-376 Office Open XML. Je užitečná, protože poskytuje vysoce úrovňové API, které abstrahuje složité XML struktury podkládající Word soubory.

Co dělá Go-Docx výjimečným, je jeho komplexní sada funkcí: formátování textu (barva, velikost, zarovnání), vkládání obrázků, manipulace s tabulkami, tvary, plátna a skupiny. Ať už generujete faktury, parsujete životopisy nebo automatizujete vytváření reportů, tato knihovna zvládá složité struktury Office Open XML (ECMA-376) bez nutnosti volání externích aplikací. Jedná se o komunitou řízený fork, který se výrazně vyvinul oproti svým předchůdcům. Na rozdíl od komerčních alternativ, jako je UniOffice (vyžadující platbu za plné funkce), Go-Docx zůstává zcela zdarma pod licencí AGPL-3.0.

Previous Next

Začínáme s Go-Docx

Doporučený způsob, jak zahrnout Go-Docx do vašeho projektu, je pomocí GitHubu. Pro hladkou instalaci použijte následující příkaz.

Instalace Go-Docx přes GitHub

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

Pokročilé generování dokumentů pomocí Go

Go-Docx vám umožňuje od nuly vytvářet komplexní dokumenty pomocí strukturovaného přístupu. Spravuje inicializaci prostředí dokumentu, včetně výchozích motivů a stylů, aby vaše generované soubory byly plně kompatibilní s Microsoft Word a dalšími moderními procesory. Zde je jednoduchý příklad, který ukazuje, jak v Go aplikacích vygenerovat soubor Word Docx.

Jak generovat soubory Word Docx pomocí Go knihovny?

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

Komplexní parsování dokumentů pomocí Go API

Na rozdíl od mnoha konkurentů vyniká open source knihovna Go-Docx při čtení existujících souborů. Dokáže parsovat soubor .docx a procházet jeho obsahové položky, jako jsou odstavce a tabulky. To z ní činí ideální volbu pro extrakci dat nebo auditování dokumentů, kde potřebujete programově analyzovat obsah. Následující příklad ukazuje, jak vývojáři mohou parsovat Word dokumenty ve svých vlastních Go aplikacích.

Jak parsovat dokumenty Word Docx pomocí Go knihovny?

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

Dynamické vytváření tabulek v souborech Docx pomocí 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.

Jak vytvořit jednoduchou tabulku ve Word souboru pomocí Go knihovny?

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
}

Podpora bohatého stylování a formátování textu

Jemná kontrola typografie je hlavní silou této open source Go knihovny. Můžete měnit barvu textu, velikost písma, zarovnání a dokonce přidávat hypertextové odkazy nebo tabulátory pomocí Go-Docx. To vývojářům umožňuje vytvářet profesionální, značkové dokumenty, které odpovídají specifickým požadavkům na design, bez ručního zásahu.

Jak aplikovat stylování a formátování textu na Word dokumenty pomocí Go knihovny?

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")
}
 Čeština