Golang采用OpenXML标准写Word文档

Golang采用OpenXML标准写Word文档

Git路径:https://github.com/ErmaiSoft/GoOpenXml

参考代码

package main
import (
	"fmt"
	"github.com/ErmaiSoft/GoOpenXml/word"
)
func main() {
	titleFont := word.Font{Family: "微软雅黑", Size: 28, Bold: true, Color: "CC0000"}//字体
	normalFont := word.Font{Family: "宋体", Size: 10.5, Bold: false, Space: true, Color: "000000"}
	normalBoldFont := word.Font{Family: "宋体", Size: 10.5, Bold: true, Space: true, Color: "000000"}
	normalLine := word.Line{Height: 1.5, Rule: word.LineRuleExact}//行高、行间距
	subTitleFont := word.Font{Family: "微软雅黑", Size: 15, Bold: true, Color: "000000"}
	subTitleLine := word.Line{Rule: word.LineRuleAuto, Height: 1.5}
	contentFont := word.Font{Family: "宋体", Size: 10.5, Bold: false, Color: "000000"}
	contentLine := word.Line{Rule: word.LineRuleAuto, FirstLineChars: 2, Height: 1.5}//行高、行间距、首行缩进
	docx := word.CreateDocx()
	docx.AddParagraph([]word.Paragraph{
		{
			F: titleFont,
			L: word.Line{After: 0.8, Rule: word.LineRuleAuto},
			T: []word.Text{
				{T: "会议纪要", F: &titleFont},
			},
			Rect: []*word.DrawRect{
				{W: float64(docx.PageSize.W - docx.PageSize.L - docx.PageSize.R), H: 1, PH: 0, PV: 16, T: "line", C: "CC0000"},
				{W: float64(docx.PageSize.W - docx.PageSize.L - docx.PageSize.R), H: 0.25, PH: 0, PV: 17, T: "line", C: "CC0000"},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "时间"},
				{T: " | 2021-02-02 15:30", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "地点"},
				{T: " | 二楼会议室", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "应到"},
				{T: " | 25 人", F: &normalBoldFont},
				{T: "    实到", F: &normalFont},
				{T: " | 22 人", F: &normalBoldFont},
				{T: "    参会率", F: &normalFont},
				{T: " | 88%", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "出席"},
				{T: " | 张三、李四、王五", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "缺席"},
				{T: " | 麻六", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "列席"},
				{T: " | 周吴", F: &normalBoldFont},
			},
		},
		{
			F: normalFont,
			L: normalLine,
			T: []word.Text{
				{T: "主持人"},
				{T: " | 李总", F: &normalBoldFont},
			},
		},
		{
			F: word.Font{Family: "宋体", Size: 10.5, Color: "000000"},
			L: word.Line{Height: 1.5, After: 1, Rule: word.LineRuleAuto},
			T: []word.Text{
				{T: "记录人"},
				{T: " | 张三", F: &normalBoldFont},
			},
			Rect: []*word.DrawRect{
				{W: float64(docx.PageSize.W - docx.PageSize.L - docx.PageSize.R), H: 1, PH: 0, PV: 8, T: "line", C: "CC0000"},
			}},
		{
			F: subTitleFont,
			L: subTitleLine,
			T: []word.Text{
				{T: "会议议题", F: &subTitleFont},
			},
		},
		{
			F: contentFont,
			L: contentLine,
			T: []word.Text{
				{T: "第一段文字",
					F: &contentFont},
			},
		},
		{
			F: contentFont,
			L: contentLine,
			T: []word.Text{
				{T: "第二段文字。",
					F: &contentFont},
			},
		},
		{
			F: contentFont,
			L: contentLine,
			T: []word.Text{
				{T: "第三段文字。",
					F: &contentFont},
			},
		},
	})

	err := docx.WriteToFile("D:/Dev/Demo/Word/word_test.docx")
	if err != nil {
		fmt.Println(err)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值