Generuj i parsuj pliki .docx za pomocą darmowej biblioteki Go

Otwarta biblioteka Go do przetwarzania Word, umożliwiająca programowy odczyt i zapis Microsoft Word. Wstawiaj pliki multimedialne, obrazy, tekst, nagłówki/stopki oraz tabele do plików DOCX.

Czym jest biblioteka Go-Docx?

W świecie programowania w Golang obsługa dokumentów Microsoft Word (.docx) od zawsze była wyzwaniem. Wiele dostępnych bibliotek ogranicza się do funkcji 'tylko zapis' lub wiąże się z wysoką ceną komercyjną. Go-Docx (utrzymywany przez fumiama) wypełnia tę lukę jako jedna z najbardziej funkcjonalnych, otwartoźródłowych bibliotek zaprojektowanych zarówno do odczytu, jak i zapisu plików ECMA-376 Office Open XML. Jest przydatna, ponieważ oferuje API wysokiego poziomu, które abstrahuje złożone struktury XML leżące u podstaw plików Word.

Co wyróżnia Go-Docx, to jego wszechstronny zestaw funkcji: formatowanie tekstu (kolor, rozmiar, wyrównanie), wstawianie obrazów, manipulacja tabelami, kształty, płótna i grupy. Niezależnie od tego, czy generujesz faktury, parsujesz CV, czy automatyzujesz tworzenie raportów, biblioteka obsługuje złożone struktury Office Open XML (ECMA-376) bez konieczności uruchamiania zewnętrznych aplikacji. Jest to fork rozwijany przez społeczność, który znacznie ewoluował w stosunku do swoich poprzedników. W przeciwieństwie do komercyjnych alternatyw, takich jak UniOffice (wymagających płatności za pełne funkcje), Go-Docx pozostaje całkowicie darmowy na licencji AGPL-3.0.

Previous Next

Rozpoczęcie pracy z Go-Docx

Zalecany sposób dodania Go-Docx do projektu to użycie GitHub. Proszę użyć poniższego polecenia, aby uzyskać płynną instalację.

Zainstaluj Go-Docx przez GitHub

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

Zaawansowane generowanie dokumentów w Go

Go-Docx pozwala tworzyć złożone dokumenty od podstaw, używając strukturalnego podejścia. Obsługuje inicjalizację środowiska dokumentu, w tym domyślne motywy i style, zapewniając, że wygenerowane pliki są w pełni kompatybilne z Microsoft Word oraz innymi nowoczesnymi procesorami. Oto prosty przykład pokazujący, jak wygenerować plik Word Docx w aplikacjach Go.

Jak generować pliki Word Docx przy użyciu biblioteki 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()
}

Kompleksowe parsowanie dokumentów przy użyciu API Go

W przeciwieństwie do wielu konkurentów, otwartoźródłowa biblioteka Go-Docx wyróżnia się w odczytywaniu istniejących plików. Potrafi parsować plik .docx i iterować po elementach jego treści, takich jak akapity i tabele. Czyni to ją idealnym wyborem do zadań związanych z ekstrakcją danych lub audytem dokumentów, gdzie konieczna jest programowa analiza zawartości. Poniższy przykład pokazuje, jak programiści mogą parsować dokumenty Word w swoich własnych aplikacjach Go.

Jak parsować dokumenty Word Docx przy użyciu biblioteki 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)
		}
	}
}

Dynamiczne tworzenie tabel w plikach Docx za 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 stworzyć prostą tabelę w pliku Word przy użyciu biblioteki 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
}

Obsługa bogatego formatowania i stylizacji tekstu

Precyzyjna kontrola typografii jest kluczową zaletą tej otwartoźródłowej biblioteki Go. Możesz modyfikować kolor tekstu, rozmiar czcionki, wyrównanie, a nawet dodawać hiperłącza czy tabulatory za pomocą Go-Docx. Pozwala to programistom generować profesjonalne, markowe dokumenty spełniające konkretne wymagania projektowe bez ręcznej interwencji.

Jak zastosować stylizację i formatowanie tekstu w dokumentach Word przy użyciu biblioteki 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")
}
 Polski