github.com/360EntSecGroup-Skylar/excelize
github.com/tealeg/xlsx
可以使用以上两个库
代码如下:
// DownLoadTemplate 创建并下载一个 Excel 模板
func (c *TemplateController) DownLoadTemplate() {
var file *xlsx.File
var sheet *xlsx.Sheet
var row *xlsx.Row
var 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模板
导入功能请看下一篇文章