github.com/360EntSecGroup-Skylar/excelize
github.com/tealeg/xlsx
可以使用以上两个库
代码如下:
// DownLoadTemplate 创建并下载一个 Excel 模板
func (c *TemplateController) DownLoadTemplate() {var file *xlsx.Filevar sheet *xlsx.Sheetvar row *xlsx.Rowvar cell *xlsx.Cell// 创建新的 Excel 文件file = xlsx.NewFile()sheet, _ = file.AddSheet("Template")// 设置表格头headers := []string{"编号", "样件码", "创建人", "产品型号", "备注"}row = sheet.AddRow()for _, header := range headers {cell = row.AddCell()cell.Value = header}// 保存路径if !FileExists("static/tmp") {os.MkdirAll("static/tmp", os.ModePerm)}filename := "static/tmp/template_" + fmt.Sprintf("%d", time.Now().Unix()) + ".xlsx"err := file.Save(filename)if err != nil {fmt.Println(err)c.jsonResult(JRCodeFailed, "文件保存失败!", 0)return}defer os.Remove(filename) // 确保在下载后删除文件// 设置下载文件的名称now := time.Now()nowStr := fmt.Sprintf("%d%d%d%d%d%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())servername := "template_" + nowStr + ".xlsx"// 发送文件到浏览器下载c.Ctx.Output.Download(filename, servername)
}// FileExists 检查文件或目录是否存在
func FileExists(filename string) bool {_, err := os.Stat(filename)return !os.IsNotExist(err)
}
在示例中,可以从浏览器下载一个由你自由定义的excel模板
导入功能请看下一篇文章