Excelize - Golang 操作 Office Excel 文件類庫

astaxie發表於2016-10-11

Excelize 是 Golang 編寫的一個用來操作 Office Excel 文件類庫,基於微軟的 Office Open XML 標準。可以使用它來讀取、寫入 XLSX 檔案。相比較其他的開源類庫,Excelize 支援寫入帶有圖表的文件,並且在儲存後不會丟失圖表樣式。

安裝

go get github.com/Luxurioust/excelize

建立 XLSX

package main

import (
    "fmt"
    "github.com/Luxurioust/excelize"
)

func main() {
    xlsx, err := excelize.CreateFile()
    if err != nil {
        fmt.Println(err)
    }
    xlsx.NewSheet(2, "Sheet2")
    xlsx.NewSheet(3, "Sheet3")
    xlsx.SetCellInt("Sheet2", "A23", 10)
    xlsx.SetCellStr("Sheet3", "B20", "Hello")
    err = xlsx.WriteTo("/home/Workbook.xlsx")
    if err != nil {
        fmt.Println(err)
    }
}

修改已有文件

package main

import (
    "fmt"
    "github.com/Luxurioust/excelize"
)

func main() {
    xlsx, err := excelize.OpenFile("/home/Workbook.xlsx")
    if err != nil {
        fmt.Println(err)
    }
    xlsx.SetCellInt("Sheet2", "B2", 100)
    xlsx.SetCellStr("Sheet2", "C11", "Hello")
    xlsx.NewSheet(3, "TestSheet")
    xlsx.SetCellInt("Sheet3", "A23", 10)
    xlsx.SetCellStr("Sheet3", "b230", "World")
    xlsx.SetActiveSheet(2)
    err = xlsx.Save()
    if err != nil {
        fmt.Println(err)
    }
}

讀取 XLSX 單元格

package main

import (
    "fmt"
    "github.com/Luxurioust/excelize"
)

func main() {
    xlsx, err := excelize.OpenFile("/home/Workbook.xlsx")
    if err != nil {
        fmt.Println(err)
    }
    cell := xlsx.GetCellValue("Sheet2", "D11")
    fmt.Println(cell)
}

相關文章