Go語言導出excel文件(.xlsx)

網上有許多關於導出excel的資料,其中最多的就是創建一個新的.xlsx文件(.xls庫不提供寫入的功能)。但是這種情況下導出的excel往往比較難看,另一種情況就是打開一個模板,往裏面填充東西,往往首行固定。

第一種方法(直接創建)

package main

import (
    "github.com/tealeg/xlsx"
)

func main() {
    file := xlsx.NewFile()
    sheet := file.AddSheet("Sheet1")
    row := sheet.AddRow()
    row.SetHeightCM(1) //設置每行的高度
    cell := row.AddCell()
    cell.Value = "haha"
    cell = row.AddCell()
    cell.Value = "xixi"

    err := file.Save("file.xlsx")
    if err != nil {
        panic(err)
    }

}

這樣運行出來之後就直接生成一個file.xlsx文件。

第二種方法(打開文件往裏面寫入數據)

package main

import (
    "github.com/tealeg/xlsx"
)

func main() {
    file, err := xlsx.OpenFile("format.xlsx")
    if err != nil {
        panic(err)
    }
    first := file.Sheets[0]
    row := first.AddRow()
    row.SetHeightCM(1)
    cell := row.AddCell()
    cell.Value = "1"
    cell = row.AddCell()
    cell.Value = "張三"
    cell = row.AddCell()
    cell.Value = "男"
    cell = row.AddCell()
    cell.Value = "18"

    err = file.Save("file.xlsx")
    if err != nil {
        panic(err)
    }

}

打開的模板文件格式爲:
這裏寫圖片描述

最後寫入數據的文件爲:
這裏寫圖片描述

小結

以上兩種方法其實總體上沒什麼區別,都差不多,只是用起來有些不一樣,補充一點,第二種方法打開的文件必須是.xlsx文件,否則是沒有辦法打開的。第二種方法只要直接添加行,然後寫入東西即可。依據需要選擇方法吧~

補充一下:從網上把路徑的文件下載

this.Ctx.Output.Header("Accept-Ranges", "bytes")
this.Ctx.Output.Header("Content-Disposition", "attachment; filename="+fmt.Sprintf("%s", "file.xls"))//文件名
this.Ctx.Output.Header("Cache-Control", "must-revalidate, post-check=0, pre-check=0")
this.Ctx.Output.Header("Pragma", "no-cache")
this.Ctx.Output.Header("Expires", "0")
//最主要的一句
http.ServeFile(this.Ctx.ResponseWriter, this.Ctx.Request, path)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章