excelize是一個能夠讀寫excel的package,可讀入或寫入指定位置的資料及更改樣式,適用於批量產生excel檔案及資料處理,須注意的是該package只支援.xlsx的檔案格式,尚不支援.xls的檔案處理

安裝

使用指令安裝package

go get github.com/Luxurioust/excelize

檔案操作

創建新檔

xlsx := excelize.NewFile()

開啟舊檔

inputFilePath := "D:\Project"
xlsx, err := excelize.OpenFile(inputFilePath)
if err != nil {
    fmt.Println("\rERROR:", err)
}

讀取內容

將檔案內的資料讀入一個二維的字串slice

sheetName := "Sheet1"//指定要讀取的工作表名稱
xlsxRows, err = xlsx.GetRows(sheetName)
if err != nil {
    fmt.Println("\rERROR:",err)
}

變更工作表名稱

oldSheetName := "Sheet1"//指定目前工作表名稱
newSheetName := "工作表"//指定新的工作表名稱
xlsx.SetSheetName(oldSheetName, newSheetName)

設定樣式

建立樣式 呼叫函式時使用JSON格式填入所需的樣式參數

fill:設定儲存格網底

fill使用單一顏色填充使用漸層填充
typrpatterngradient
color[“#FFFFFF”][“#FFFFFF”,“#E0EBF5”]
gradientX0:橫向
1:縱向
2:對角線向上
3:對角線向下
4:由對角線向內
5:由中心向外
pattern0:無
1:實心
2:75%灰色
3:50%灰色
4:25%灰色
5:水平條紋
6:垂直條紋
7:反對角線條紋
8:對角線條紋
9:對角線斜紋
10:粗線對角線斜紋
11:細線水平條紋
12:細線垂直條紋
13:細線反對角線條紋
14:細線對角線條紋
15:細線水平斜紋
16:細線對角線斜紋
17:12.5%灰色
18:6.25%灰色
X
//單一顏色填充
patternStyle, err := xlsx.NewStyle(`{"fill":{"type":"pattern","color":["#EBF0F3"],"pattern":1}}`)
if err != nil {
    fmt.Println("\rERROR:",err)
}

//漸層填充
gradientStyle, err := f.NewStyle(`{"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":1}}`)
if err != nil {
    fmt.Println(err)
}
    

font:設定儲存格字體

font
boldtrue/false
italictrue/false
family字型名稱
size字體大小
color[“#FFFFFF”]
fontStyle, err := f.NewStyle(`{"font":{"bold":true,"italic":false,"size":12,"color":"#FFFFFF"}}`)
if err != nil {
    fmt.Println(err)
}

使用樣式

//使用樣式設定column
err := xlsx.SetColStyle(sheetName, "A1", patternStyle)

//使用樣式設定cell
err := xlsx.SetCellStyle(sheetName, "A1", "A1", gradientStyle)