替换.docx文件中文本的简单Go库

用于替换 Microsoft Word (.docx) 文件中文本的简单 Google Go (Golang) 库。「Simple Google Go (Golang) library for replacing text in Microsoft Word (.docx) file」

  • Owner: nguyenthenguyen/docx
  • Platform: Linux,Mac,Windows
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Simple Google Go (Golang) library for replacing text in Microsoft Word (.docx) file

The following constitutes the bare minimum required to replace text in DOCX document.


package main

import (
	"strconv"

	"github.com/nguyenthenguyen/docx"
)

func main() {
	// Read from docx file
	r, err := docx.ReadDocxFile("./TestDocument.docx")
	// Or read from memory
	// r, err := docx.ReadDocxFromMemory(data io.ReaderAt, size int64)

	// Or read from a filesystem object:
	// r, err := docx.ReadDocxFromFS(file string, fs fs.FS)

	if err != nil {
		panic(err)
	}
	docx1 := r.Editable()
	// Replace like https://golang.org/pkg/strings/#Replace
	docx1.Replace("old_1_1", "new_1_1", -1)
	docx1.Replace("old_1_2", "new_1_2", -1)
	docx1.ReplaceLink("http://example.com/", "https://github.com/nguyenthenguyen/docx", 1)
	docx1.ReplaceHeader("out with the old", "in with the new")
	docx1.ReplaceFooter("Change This Footer", "new footer")
	docx1.WriteToFile("./new_result_1.docx")

	docx2 := r.Editable()
	docx2.Replace("old_2_1", "new_2_1", -1)
	docx2.Replace("old_2_2", "new_2_2", -1)
	docx2.WriteToFile("./new_result_2.docx")

	// Or write to ioWriter
	// docx2.Write(ioWriter io.Writer)

	docx3 := r.Editable()
	//Currently only swaps apples for apples i.e. png to png, and not png to jpeg etc.
	docx3.ReplaceImage("word/media/image1.png", "./new.png")

	// replace the last image
	imageIndex := docx3.ImagesLen()
	docx3.ReplaceImage("word/media/image"+strconv.Itoa(imageIndex)+".png", "./new.png")
	docx3.WriteToFile("./new_result_3.docx")

	r.Close()
}

Main metrics

Overview
Name With Ownernguyenthenguyen/docx
Primary LanguageGo
Program language (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-10-09 19:24:50
Pushed At2024-07-29 10:30:49
Last Commit At2023-06-21 18:21:18
Release Count1
Last Release Namev1.0 (Posted on )
First Release Namev1.0 (Posted on )
用户参与
Stargazers Count587
Watchers Count11
Fork Count140
Commits Count50
Has Issues Enabled
Issues Count18
Issue Open Count7
Pull Requests Count13
Pull Requests Open Count6
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private