💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
> ### 导出 Excel 表格 * [github.com/360EntSecGroup-Skylar/excelize](http://github.com/360EntSecGroup-Skylar/excelize) * 库操作文档 :[https://xuri.me/excelize/zh-hans/sheet.html#SetColWidth](https://xuri.me/excelize/zh-hans/sheet.html#SetColWidth) ~~~ package main import ( "fmt" "github.com/360EntSecGroup-Skylar/excelize" "github.com/gin-gonic/gin" ) var ( letter = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"} ) func Download(c *gin.Context, fileName string, sheetName string, tableHeader []string, data [][]interface{}) error { xlsx := excelize.NewFile() xlsx.SetColWidth("Sheet1", "A", "O", 200/float64(len(tableHeader))) //一格一格的写入, 数据一多, 等待的时间太长了, 后面改成CSV了 for k, v := range tableHeader { xlsx.SetCellValue(sheetName, fmt.Sprintf("%s%d", letter[k], 1), v) } for k, v := range data { for x, y := range v { xlsx.SetCellValue(sheetName, fmt.Sprintf("%s%d", letter[x], k+2), y) } } c.Header("Pragma", "public") c.Header("Expires", "0") c.Header("Cache-Control", "must-revalidate, post-check=0, pre-check=0") c.Header("Content-Type", "application/octet-stream") c.Header("Content-Disposition", fmt.Sprintf("attachment; filename="+"%s", fileName)) c.Header("Content-Transfer-Encoding", "binary") if err := xlsx.Write(c.Writer); err != nil { fmt.Println(err.Error()) return err } return nil } ~~~