收费(功能全)

github.com/unidoc/unioffice

免费(不维护,基本够用)

github.com/carmel/gooxml

导入包

go get github.com/carmel/gooxml

基本使用

package main

import (
	"github.com/carmel/gooxml/color"
	"github.com/carmel/gooxml/document"
	"github.com/carmel/gooxml/measurement"
	"github.com/carmel/gooxml/schema/soo/wml"
)

func main() {
    doc := document.New()
    para := docc.AddParagraph()

		
    para.Properties().SetAlignment(wml.ST_JcLeft)                // 对齐
    para.Properties().SetFirstLineIndent(0.5 * measurement.Inch) // 缩进
    para.Properties().Spacing().SetLineSpacing(1.5 * 12 * measurement.Point, wml.ST_LineSpacingRuleAuto)                                  // 行高

    run := para.AddRun()                          // 创建一个新段
    run.AddText(text.Content)                     // 增加文字
    run.Properties().SetSize(10)                  // 字体大小
    run.Properties().SetColor(color.RGB(0, 0, 0)) // 字体颜色
    run.Properties().SetBold(true)                // 加粗
    run.Properties().SetHighlight(color.Red)      // 突出显示
    run.Properties().SetStrikeThrough(true)       // 删线
    run.Properties().SetUnderline(wml.ST_UnderlineWavyHeavy, color.Black) // 下划线
    run.Properties().SetItalic(true)              // 斜体
    run.Properties().SetFontFamily("黑体")        // 字体



    // 第三方库没有底纹颜色方法,自定义
    SetShading(run, color.RGB(0, 0, 0)) // 底纹颜色
	if err := doc.SaveToFile(path); err != nil {
        fmt.Println(err)
        return
    }
}

func SetShading(run document.Run, color color.Color) {
	shd := wml.NewCT_Shd()
	shd.FillAttr = &wml.ST_HexColor{
		ST_HexColorRGB: color.AsRGBAString(),
	}
	shd.ValAttr = wml.ST_ShdClear
	run.X().RPr.Shd = shd
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐