# simple-go-docx **Repository Path**: jn-qq/simple-go-docx ## Basic Information - **Project Name**: simple-go-docx - **Description**: go 简单 写入docx文档 - **Primary Language**: Go - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-04-28 - **Last Updated**: 2024-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simple-go-docx #### 介绍 golang 生成简单docx文档,纯文本样式
#### 包结构 ~~~mermaid graph LR A(simple-go-docx)--package-->B((docx)) A--dir-->C{{document}}--package-->D((document)) A--dir-->E{{paragraph}}--package-->F((paragraph)) A--dir-->G{{run}}--package-->H((run)) A--dir-->I{{styles}}--package-->J((styles)) A--dir-->K[(templates)] ~~~ #### 安装 ```go go get -u gitee.com/jn-qq/simple-go-docx ```
#### 使用说明 `simple-go-docx/docx_test.go` ``` // 创建docx文档对象 document := NewDocx() // 修改默认样式 defaultStyle := document.GetStyle("Normal") defaultStyle.TextStyle.SetFont("楷体") //添加段落 ① p1 := document.AddParagraph() //设置段落格式 p1.Style.IndFirst() // 添加文本 ① r1 := p1.AddText("测试所有字体格式") // 设置文本格式 r1.Style.SetSize(shared.Pt(10)).SetColor("FF0000").SetFont("楷体"). SetBold().SetItalic().SetUnderLine("wave"). HighlightColor(shared.ColorLib.Yellow) // 添加文本 ② p1.AddText("段落新增文本1") p1.AddText("段落新增文本2") // 简单连写添加 p2 := document.AddParagraph() p2.Style.SetHead(2).XLineSpace(2) p2.AddText("段落2文本").Style.SetColor("FF0000").SetFont("楷体") // 自定义样式 style := styles.NewCustomStyle("自定义样式1", "paragraph") // 设置具体样式 style.ParagraphStyle.IndFirst().XLineSpace(2) style.TextStyle.SetFont("楷体").SetSize(shared.Pt(20)).SetColor(shared.ColorLib.Blue) // 添加声明样式 获取id sid := document.AddCustomStyle(&style) // 添加段落指定段落样式 p3 := document.AddParagraph() p3.Style.SetHead(sid) p3.AddText("自定义段落样式") // 添加字符样式 //cs := docx.NewCustomStyle("自定义段落样式", "character") //添加属性。。。 // 图片相关操作 // 上传图片 if err := document.UploadImages(10, &image.Image{ Online: "https://tse4-mm.cn.bing.net/th/id/OIP-C.4UlvcR0AB1Oh_iXwP7szowHaGI", Name: "image1", }); err != nil { panic(err) } p4 := document.AddParagraph() p4.AddDrawing("image1", shared.Cm(5), shared.Cm(5), "") p4.AddDrawing("image1", shared.Cm(5), shared.Cm(5), "") _, path, _, _ := runtime.Caller(0) path, _ = filepath.Split(path) err := document.Save(filepath.Join(path, "test.docx")) if err != nil { panic(err) } ```
#### 参考 1. [go-docx](https://github.com/fumiama/go-docx) 2. [ooxml](https://www.datypic.com/sc/ooxml)