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