1.首先需要先下载他的包,这里用最新的包:
go get -u github.com/360EntSecGroup-Skylar/excelize
2、中文文档:
https://www.bookstack.cn/read/excelize-2.5.0-zh/spilt.6.824dc3431f31ebcf.md
查找思路:
在这个项目代码中全文搜索 github.com/360EntSecGroup-Skylar/excelize/v2
比如:合并单元格 (对应英文:merge)
单元格边框线 (对应英文:border)
一、导出格式设置
import (
"log"
"github.com/360EntSecGroup-Skylar/excelize/v2"
)
file := excelize.NewFile()
streamWriter, err := file.NewStreamWriter("Sheet1")
if err != nil {
return nil, err
}
styleID, err := file.NewStyle(`{"font":{"color":"#000000", "bold":true}}`)
if err != nil {
return nil, err
}
// 表头
values := make([]interface{}, 0)
for _, v := range tableHeader {
values = append(values, excelize.Cell{StyleID: styleID, Value: v})
}
err = streamWriter.SetRow("A1", values)
if err != nil {
log.Println(err)
}
二、单元格合并
sheet1 := file.GetSheetName(0)
RowStr := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N"}
for _, r := range RowStr {
err = file.MergeCell(sheet1, r+"1", r+"2")
}
err = file.MergeCell(sheet1, "O1", "Q1")
err = file.MergeCell(sheet1, "R1", "T1")
err = file.MergeCell(sheet1, "U1", "W1")
err = file.MergeCell(sheet1, "X1", "Z1")
err = file.MergeCell(sheet1, "AA1", "AC1")
err = file.MergeCell(sheet1, "AD1", "AF1")
err = file.MergeCell(sheet1, "AG1", "AI1")
err = file.MergeCell(sheet1, "AJ1", "AL1")
err = file.MergeCell(sheet1, "AM1", "AO1")
err = file.MergeCell(sheet1, "AP1", "AR1")
err = file.MergeCell(sheet1, "AS1", "AU1")
err = file.MergeCell(sheet1, "AV1", "AX1")
三、单元格边框线
"style":1 是实线 "style":0 是虚线
contentStyle, err := file.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
}
]
}`)
// 表内容
for i := range data {
cell, _ := excelize.CoordinatesToCellName(1, i+2)
values = make([]interface{}, 0)
for _, v := range data[i] {
values = append(values, excelize.Cell{
Value: v,
StyleID: contentStyle,
})
}
if err := streamWriter.SetRow(cell, values); err != nil {
log.Println(err)
continue
}
}