首頁 > 軟體

golang實現瀏覽器匯出excel檔案功能

2022-03-25 16:00:49

1.依賴包

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

2.範例

func (o *orderController) Export(request *restful.Request, response *restful.Response) {
username := request.Attribute(filters.UserName).(string)

orderService := service.NewOrderService(o.Db)

orders, _ := orderService.ListUserOrders(username)

file := xlsx.NewFile()
sheet, _ := file.AddSheet("訂單資訊")

titles := []string{"服務型別", "訂單號", "建立時間", "訂單型別", "訂單金額(元)", "訂單狀態", "原因"}
row := sheet.AddRow()

var cell *xlsx.Cell
for _, title := range titles {
cell = row.AddCell()
cell.Value = title
}

for _, order := range *orders {
values := []string{
getServiceTypeStr(*order.ServiceType),
order.Id,
order.CreateTime.Format("2006-01-02 15:04:05"),
getOrderTypeStr(*order.OrderType),
"1",
getOrderStatusStr(*order.Status),
order.Reason,
}

row = sheet.AddRow()
for _, value := range values {
cell = row.AddCell()
cell.Value = value
}
}

filename := "訂單資訊" + ".xlsx"

response.AddHeader("Content-Type", "application/octet-stream")
response.AddHeader("Content-Disposition", "attachment; filename="+filename)
response.AddHeader("Content-Transfer-Encoding", "binary")

//回寫到web 串流媒體 形成下載
_ = file.Write(response.ResponseWriter)
}

3.分析

3.1先根據需求查詢需要的list物件

3.2新建檔案,設定檔名,跟列名

3.3設定標題單元格

3.4設定內容單元格

3.5串流媒體返回web

這個範例是沒有封裝過的,如果想要封裝,可以參考我的另一篇文章,下面是連結,喜歡小編的點點關注

到此這篇關於golang實現瀏覽器匯出excel檔案功能的文章就介紹到這了,更多相關golang excel檔案匯出內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com