代码使用了第三方excel包

go get github.com/xuri/excelize/v2
直接上代码

import (
	"github.com/xuri/excelize/v2"
	"log"
	"net/http"
)

func main() {
	http.HandleFunc("/", index)

	err := http.ListenAndServe(":9090", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func index(w http.ResponseWriter, r *http.Request) {
	// 文件名
	fileName := "demo.xlsx"
	// 创建excel文件 (第三方excel包)
	file := excelize.NewFile()
	// 填充数据
	index := file.NewSheet("Sheet1")
	_ = file.SetCellValue("Sheet1", "A1", "Hello world.")
	_ = file.SetCellValue("Sheet1", "B1", 100)
	file.SetActiveSheet(index)
	// 设置header头
	w.Header().Add("Content-Disposition","attachment; filename=" + fileName)
	w.Header().Add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
	// 写入字节数据
	_ = file.Write(w)
}

运行测试请求http://127.0.0.1:9090即可。