自学内容网 自学内容网

Golang实现Word模板内容填充导出

这里我们使用一个广泛使用且免费处理 .docx 文件的库,github.com/nguyenthenguyen/docx.

安装 github.com/nguyenthenguyen/docx

首先,确保你已经安装了 docx 库:

go get github.com/nguyenthenguyen/docx

使用 docx 库处理 Word 模板

以下是如何实现的完整示例:

示例模板内容

假设我们的模板 template.docx 的内容如下:

张三:{{TASK_NAME}}
李四:{{DETAILS}}

实现代码逻辑

package main

import (
"fmt"
"log"
"strings"

"github.com/nguyenthenguyen/docx"
)

func replacePlaceholder(text, placeholder, value string) string {
return strings.ReplaceAll(text, "{{"+placeholder+"}}", value)
}

func main() {
// 打开 Word 模板
r, err := docx.ReadDocxFile("/Users/songfayuan/GolandProjects/dsms-admin/template/template.docx")
if err != nil {
log.Fatalf("failed to open word template: %v", err)
}
doc := r.Editable()

// 填充数据
taskName := "Sample Task"
details := "This is a sample task detail."

content := doc.GetContent()
content = replacePlaceholder(content, "TASK_NAME", taskName)
content = replacePlaceholder(content, "DETAILS", details)
doc.SetContent(content)

// 保存为新文件
outputFilePath := "/Users/songfayuan/GolandProjects/dsms-admin/template/filled_template.docx"
err = doc.WriteToFile(outputFilePath)
if err != nil {
log.Fatalf("failed to save word document: %v", err)
}

fmt.Printf("Document saved to %s\n", outputFilePath)
}

结果

在这里插入图片描述


原文地址:https://blog.csdn.net/u011019141/article/details/140701369

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!