golang excel导出 style样式和所有流程

先抛出两个站:

Excelize 官方文档:https://xuri.me/excelize/zh-hans/

RGB颜色表: https://www.114la.com/other/rgb.htm

1.首先需要先下载他的包,这里用最新的包:

go get -u github.com/360EntSecGroup-Skylar/excelize

2.现在直接上代码,注意多看注释,基本能解决导出时的所有内容了

package main

import (
	"fmt"
	"github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
	var myTableName = "新潮传媒文化研讨成绩表"
	//1.创建一个文件Excel文件
	f := excelize.NewFile()
	//2.创建一个工作表,表名为myTableName的内容
	index := f.NewSheet(myTableName)
	//3.设置第一个样式
	style, err := f.NewStyle(`
                {
                        "border":[
                                {
                                        "type":"left",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"top",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"bottom",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"right",
                                        "color":"000000",
                                        "style":1
                                }
                        ]
                }
        `)
	//3.1.设置第二个样式,fill的颜色如果两个都是一样的,就是纯色了,type查看文档可以调出很多渐变样式
	style2, err := f.NewStyle(`
                {
                        "alignment":{
                                "horizontal":"center"
                        },
                        "border":[
                                {
                                        "type":"left",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"top",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"bottom",
                                        "color":"000000",
                                        "style":1
                                },
                                {
                                        "type":"right",
                                        "color":"000000",
                                        "style":1
                                }
                        ],
                        "fill":{
                                        "type":"gradient",
                                        "color":[
                                                "#FFFFFF",
                                                "#FF4040"
                                        ],
                                        "shading":0
                                }
                }
`)
	if err != nil {
		fmt.Println(err)
		return
	}
	//将第一个样式给行A1到C1,你也可以设置A1 A10这样,看需求
	f.SetCellStyle(myTableName, "A1", "C1", style)
	f.SetCellValue(myTableName, "A1", "员工工号")
	f.SetCellValue(myTableName, "B1", "员工姓名")

	//合并单元格
	f.MergeCell(myTableName,"D1","E1")
	f.SetCellValue(myTableName, "D1", "合并的单元格")
	//设置合并单元格,每一格宽度是10,D+E=20
	f.SetColWidth(myTableName,"D","E",10)
	//设置C单元格20的宽度
	f.SetColWidth(myTableName, "C", "C", 20)
	//将第一行设置为20高度
	f.SetRowHeight(myTableName, 1, 20)

	//将第一个样式给行A2到C2,你也可以设置A1 A10这样,看需求
	f.SetCellStyle(myTableName, "A2", "C2", style)
	//将第二个样式给行A2到C2,你也可以设置A1 A10这样,看需求,从这里可以看出,可以设置多个style组合,以便少定义一些样式
	f.SetCellStyle(myTableName, "A2", "C2", style2)

	f.SetCellValue(myTableName, "A2", "XC10746")
	f.SetCellValue(myTableName, "B2", "春卷虎")
	f.SetCellValue(myTableName, "C2", "表头都没有")
	//4.设置当前索引的工作表为默认显示
	f.SetActiveSheet(index)
	//将文件另存为myTableName名.xlsx
	if err := f.SaveAs(myTableName + ".xlsx"); err != nil {
		println(err.Error())
	}
}

至于还有其他不清楚的,可以查看一下源码或者看文档

猜你喜欢

转载自blog.csdn.net/XiaoAnGeGe/article/details/106211470