1 回答

TA貢獻1883條經(jīng)驗 獲得超3個贊
您可以使用這個簡單的包:"github.com/lukasjarosch/go-docx"
. {variables}
這個包可以幫助您通過替換給定的文本上下文來填充 docx 文件模板。
示例用法:
填充模板的代碼:
package main
import (
"fmt"
docx "github.com/lukasjarosch/go-docx"
)
func main() {
replaceMap := docx.PlaceholderMap{
"_contract_name_": "Home rental",
"_name_": "John Doe",
"_summary_": "Terms and conditions",
"_date_": "13-04-2022",
"_condition_1_": "apartment should always be cleaned",
"_condition_2_": "term 2 ...",
"_condition_4_": "term 4 ...",
"_condition_3_": "term 3 ...",
"_condition_5_": "term 5 ...",
}
for i := 1; i <= 5; i++ {
replaceMap[fmt.Sprintf("_accept_%d", i)] = "??"
replaceMap[fmt.Sprintf("_reject_%d", i)] = ""
}
// read and parse the template docx
doc, err := docx.Open("template.docx")
if err != nil {
panic(err)
}
// replace the keys with values from replaceMap
err = doc.ReplaceAll(replaceMap)
if err != nil {
panic(err)
}
// write out a new file
err = doc.WriteToFile("replaced.docx")
if err != nil {
panic(err)
}
}
結(jié)果文件:
PS:這個包不提供插入圖片的功能。如果你想插入圖片,你可以使用這個商業(yè)包:"github.com/unidoc/unioffice/document"
- 1 回答
- 0 關(guān)注
- 292 瀏覽
添加回答
舉報