golang,go,博客,开源,编程
excelize
是一个用于处理 Excel 文件的 Go 语言库,支持读取、修改和创建 .xlsx
文件。它是一个非常流行的 Go 语言库,特别适用于需要操作 Excel 表格的 Go 开发者。这个库的功能丰富,支持大量的 Excel 特性,甚至可以操作图表、样式、单元格合并等。
xuri/excelize/v2
的基本特性:xuri/excelize/v2
是 excelize
库的最新版本(v2)。相较于 v1
,v2
引入了一些增强和优化,主要特点如下:
.xlsx
文件,允许你访问、修改单元格内容、格式等。workbook
)包含多个工作表(worksheet
)。.xlsx
文件。excelize
可以在 Linux、macOS、Windows 等多个平台上运行。excelize/v2
的安装你可以通过 go get
来安装 excelize
:
go get github.com/xuri/excelize/v2
package main
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func main() {
// 创建一个新的工作簿
f := excelize.NewFile()
// 设置工作表 "Sheet1" 中 A1 单元格的值
err := f.SetCellValue("Sheet1", "A1", "Hello Excel!")
if err != nil {
log.Fatal(err)
}
// 保存文件
err = f.SaveAs("test.xlsx")
if err != nil {
log.Fatal(err)
}
fmt.Println("File created successfully")
}
package main
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func main() {
// 打开一个现有的 Excel 文件
f, err := excelize.OpenFile("test.xlsx")
if err != nil {
log.Fatal(err)
}
// 读取工作表 "Sheet1" 中 A1 单元格的值
cell, err := f.GetCellValue("Sheet1", "A1")
if err != nil {
log.Fatal(err)
}
fmt.Println("Cell A1 value:", cell)
}
package main
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func main() {
// 打开一个现有的 Excel 文件
f, err := excelize.OpenFile("test.xlsx")
if err != nil {
log.Fatal(err)
}
// 设置工作表 "Sheet1" 中 B1 单元格的值
err = f.SetCellValue("Sheet1", "B1", "New Value")
if err != nil {
log.Fatal(err)
}
// 保存文件
err = f.Save()
if err != nil {
log.Fatal(err)
}
fmt.Println("File updated successfully")
}
package main
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func main() {
// 创建一个新的工作簿
f := excelize.NewFile()
// 设置单元格 A1 的字体样式
style, err := f.NewStyle(`{
"font": {
"bold": true,
"size": 12,
"color": "#FF0000"
},
"alignment": {
"horizontal": "center",
"vertical": "center"
}
}`)
if err != nil {
log.Fatal(err)
}
// 应用样式到单元格 A1
err = f.SetCellValue("Sheet1", "A1", "Styled Cell")
if err != nil {
log.Fatal(err)
}
err = f.SetCellStyle("Sheet1", "A1", "A1", style)
if err != nil {
log.Fatal(err)
}
// 保存文件
err = f.SaveAs("styled.xlsx")
if err != nil {
log.Fatal(err)
}
fmt.Println("File with styled cell created successfully")
}
package main
import (
"fmt"
"log"
"github.com/xuri/excelize/v2"
)
func main() {
// 创建一个新的工作簿
f := excelize.NewFile()
// 向 Sheet1 中插入数据
for i := 1; i <= 10; i++ {
f.SetCellValue("Sheet1", fmt.Sprintf("A%d", i), i)
f.SetCellValue("Sheet1", fmt.Sprintf("B%d", i), i*i)
}
// 创建一个图表
err := f.AddChart("Sheet1", "D1", `{
"type": "scatter",
"series": [
{
"name": "Sheet1!$B$1",
"categories": "Sheet1!$A$1:$A$10",
"values": "Sheet1!$B$1:$B$10"
}
]
}`)
if err != nil {
log.Fatal(err)
}
// 保存文件
err = f.SaveAs("chart.xlsx")
if err != nil {
log.Fatal(err)
}
fmt.Println("File with chart created successfully")
}
excelize/v2
常用功能总结GetCellValue
和 SetCellValue
用于操作单元格的内容。NewFile
创建工作簿,AddSheet
和 GetSheetIndex
操作工作表。SetCellStyle
、NewStyle
用于设置字体、对齐方式、颜色等样式。SetCellFormula
设置公式。AddChart
向工作簿中插入图表。xuri/excelize/v2
是一个强大而灵活的 Go 语言库,用于处理 Excel 文件,支持创建、读取、修改 Excel 文件,并提供丰富的功能,如图表、公式、单元格样式等。它能够高效地处理大量数据,适合用于生成报告、数据分析等场景。