Tạo và Phân tích Tệp .docx qua Thư viện Go Miễn phí

Thư viện Xử lý Word Go Mã nguồn mở để lập trình đọc & ghi Microsoft Word. Chèn các tệp Media, Hình ảnh, Văn bản, Header/Footer và Bảng vào các tệp DOCX.

Thư viện Go-Docx là gì?

Trong thế giới phát triển Golang, việc xử lý tài liệu Microsoft Word (.docx) luôn là một thách thức. Nhiều thư viện hiện có hoặc chỉ hỗ trợ chức năng "chỉ ghi" hoặc có mức giá thương mại cao. Go-Docx (được duy trì bởi fumiama) lấp đầy khoảng trống này như một trong những thư viện mã nguồn mở và chức năng nhất được thiết kế để cả đọc và ghi các tệp ECMA-376 Office Open XML. Nó hữu ích vì cung cấp một API cấp cao trừu tượng hoá các cấu trúc XML phức tạp nằm dưới các tệp Word.

Điều làm cho Go-Docx nổi bật là bộ tính năng toàn diện của nó: định dạng văn bản (màu, kích thước, căn lề), chèn hình ảnh, thao tác bảng, hình dạng, canvas và nhóm. Dù bạn đang tạo hóa đơn, phân tích sơ yếu lý lịch, hay tự động hoá việc tạo báo cáo, thư viện này xử lý các cấu trúc Office Open XML (ECMA-376) phức tạp mà không cần gọi đến các ứng dụng bên ngoài. Đây là một fork do cộng đồng phát triển, đã tiến triển đáng kể so với các phiên bản trước. Không như các giải pháp thương mại như UniOffice (yêu cầu trả phí để có đầy đủ tính năng), Go-Docx hoàn toàn miễn phí theo giấy phép AGPL-3.0.

Previous Next

Bắt đầu với Go-Docx

Cách khuyến nghị để đưa Go-Docx vào dự án của bạn là sử dụng GitHub. Vui lòng sử dụng lệnh sau để cài đặt mượt mà.

Cài đặt Go-Docx qua GitHub

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

Tạo tài liệu nâng cao bằng Go

Go-Docx cho phép bạn tạo các tài liệu phức tạp từ đầu bằng cách sử dụng một phương pháp có cấu trúc. Nó quản lý việc khởi tạo môi trường tài liệu, bao gồm các chủ đề và kiểu mặc định, đảm bảo rằng các tệp bạn tạo tương thích hoàn toàn với Microsoft Word và các bộ xử lý hiện đại khác. Dưới đây là một ví dụ đơn giản minh họa cách tạo một tệp Word Docx trong các ứng dụng Go.

Cách tạo tệp Word Docx qua thư viện 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()
}

Phân tích tài liệu toàn diện qua Go API

Khác với nhiều đối thủ, thư viện Go-Docx nguồn mở xuất sắc trong việc đọc các tệp hiện có. Nó có thể phân tích một tệp .docx và lặp qua các mục trong nội dung, như đoạn văn và bảng. Điều này làm cho nó trở thành lựa chọn lý tưởng cho các nhiệm vụ trích xuất dữ liệu hoặc kiểm toán tài liệu, nơi bạn cần phân tích nội dung một cách lập trình. Ví dụ sau cho thấy cách các nhà phát triển phần mềm có thể phân tích tài liệu word trong các ứng dụng Go của họ.

Cách phân tích tài liệu Word Docx qua thư viện 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)
		}
	}
}

Xây dựng bảng động trong các tệp Docx qua 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.

Cách tạo một bảng đơn giản trong tệp Word qua thư viện 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
}

Hỗ trợ định dạng và kiểu chữ phong phú

Kiểm soát chi tiết về kiểu chữ là một sức mạnh cốt lõi của thư viện Go nguồn mở này. Bạn có thể thay đổi màu văn bản, kích thước phông chữ, căn lề và thậm chí thêm liên kết hoặc điểm dừng tab qua Go-Docx. Điều này cho phép các nhà phát triển tạo ra các tài liệu chuyên nghiệp, có thương hiệu, phù hợp với yêu cầu thiết kế cụ thể mà không cần can thiệp thủ công.

Cách áp dụng kiểu chữ và định dạng văn bản cho tài liệu Word qua thư viện 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")
}
 Tiếng Việt