为了账号安全,请及时绑定邮箱和手机立即绑定

.docx模板如何使用golang(表格内容)

.docx模板如何使用golang(表格内容)

Go
FFIVE 2022-11-28 17:16:31
如何将 golang 用于 .docx 模板(表格内容):像那样(客户数量是动态的)
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

您可以使用这个简单的包:"github.com/lukasjarosch/go-docx"{variables}这个包可以帮助您通过替换给定的文本上下文来填充 docx 文件模板。

示例用法:

//img1.sycdn.imooc.com//63847c8f0001a2ee05820402.jpg

填充模板的代码:


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)

    }

}

结果文件:

//img1.sycdn.imooc.com//63847c9d000181df05620398.jpg

PS:这个包不提供插入图片的功能。如果你想插入图片,你可以使用这个商业包:"github.com/unidoc/unioffice/document"



查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信