【Go】excelize库实现excel导入导出封装,自定义导出样式、隔行背景色、自适应行高、动态导出指定列、动态更改表头
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
"math/rand"
"time"
)
func main() {
// 初始化随机数生成器
rand.Seed(time.Now().UnixNano())
// 创建一个新的Excel文档
f := excelize.NewFile()
// 定义一些基本样式
styles := map[string]*excelize.Xf{
"bold": {
Font: &excelize.Font{Bold: true},
},
"fillA1": {
Fill: &excelize.Fill{Pattern: excelize.Pattern1LightGray},
},
}
// 创建一个名为"Sheet1"的工作表
index := f.NewSheet("Sheet1")
// 设置单元格的样式和值
for row := 1; row < 10; row++ {
for col, style := range styles {
// 设置样式
styleID := f.NewStyle(style)
// 设置单元格的值
f.SetCellValue("Sheet1", excelize.ColIndexFromString(string(col))+fmt.Sprintf("%d", row), rand.Int())
// 设置单元格的样式
f.SetCellStyle("Sheet1", excelize.ColIndexFromString(string(col))+fmt.Sprintf("%d", row), styleID)
}
}
// 设置工作表索引
f.SetActiveSheet(index)
// 导出为Excel文件
if err := f.SaveAs("./ExcelExport.xlsx"); err != nil {
fmt.Println(err)
}
}
这段代码使用了excelize
库来创建一个简单的Excel文档,并对其进行了一些自定义样式的设置,包括加粗样式和填充样式。同时,代码中还展示了如何通过循环来处理多个单元格,并对每个单元格应用相同的样式。最后,代码将生成的Excel文档保存到了本地文件系统中。
评论已关闭