//路由
func add_router(method_type string, path string, handler http.HandlerFunc) rest.Route {
return rest.Route{
Method: method_type,
Path: types.Admin_Http_URL_Prefix + path,
Handler: handler,
}
}
导出的路由定义:
add_router(http.MethodGet,"/finance/business/salary/export",response.WrapResponse(BusinessSalaryExport,nil)), //财务管理-业务员待发工资导出
controller:
func BusinessSalaryExport(r *http.Request) (resp interface{},err error){
var req = new(iapi.BusinessSalaryListReq)
if resp,err = ParseReq(r,&req,"财务管理-业务员待发工资-导出,前端参数错误",log_tag_user_streamer);err != nil{
return
}
finance_obj.BusinessSalaryExport(req,(*r).Header.Get(types.HEADER_AUTH))
return
}
BusinessSalaryExport:
func (f *Finance) BusinessSalaryExport(req *iapi.BusinessSalaryListReq,authorization string){
funs_log_tag := "财务管理-业务员待发工资导出"
var err error
//fmt.Printf("header头:%+v\n",*r)
if err = f.get_token_detail(&authorization);err != nil{
fmt.Printf("错误:%+v\n",err)
return
}
(*req).PageSize = 1000
list,total,err := dao.BusinessSalaryList(f.TokenDetail.GuildId,req)
if err != nil{
logx.Error(fmt.Sprintf("tags:%+v,%+v,数据库异常,req:%+v,err:%+v", f.LogTag,req,funs_log_tag,err))
return
}
fs := excelize.NewFile()
defer func() {
if err := fs.Close(); err != nil {
fmt.Println(err)
}
}()
// 创建一个工作表
index, err := fs.NewSheet("Sheet2")
if err != nil {
fmt.Println(err)
return
}
// 设置单元格的值
fs.SetCellValue("Sheet2", "A2", "Hello world.")
fs.SetCellValue("Sheet1", "B2", 100)
// 设置工作簿的默认工作表
fs.SetActiveSheet(index)
// 根据指定路径保存文件
if err := fs.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
//调用:
curl -H "lu-live-authorization":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbGFnIjoiYWNjZXNzX3Rva2VuIiwib3BlcmF0b3JfaWQiOjEwLCJhY2NvdW50IjoiZXJpY3MiLCJndWlsZF9pZCI6MSwidXNlcl9uYW1lIjoiZXJpYyIsImlzX3N1cGVyIjowLCJpc3MiOiJsdV9saXZlX2d1aWxkIiwiZXhwIjoxNzYwMTk3NzE3fQ.trBEp1Yjd792-R54dT1ebcaGYduLlnML2McDDkvFZjg" http://127.0.0.1:33121/api/guild/finance/business/salary/export?status=1
{"code":0,"msg":"success","data":null}liuzhenpeng@liuzhenpeng ~ $ curl -H "lu-live-authorization":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbfaWQiOjEwLCJhY2NvdW50IjoiZXJpY3MiLCJndWlsZF9pZCI6MSwidXNlcl9uYW1lIjoiZXJpYyIsImlzX3N1cGVyIjowLCJpc3MiOiJsdV9saXZlX2d1aWxkIiwiZXhwIjoxNzYwMTk3NzE3fQ.trBEp1Yjd792-R54dT1ebcaGYduLlnML2McDDkvFZjg" http://127.0.0.1:33121/api/guild/finance/business/salary/export?status=1
他应该生成一个.xlsx的文件,但输出了一下:{"code":0,"msg":"success","data":null}
golang导出execl header头设置
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
阿里嘎多学长 2025-10-11 11:08关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题理解
你想在使用 Go 语言开发 HTTP 服务时,如何设置导出的 EXECL 头信息。
解决方案
你可以使用
go build命令的-ldflags参数来设置 EXECL 头信息。具体方法如下:go build -ldflags "-X main.version=1.0.0 -H windowsgui" main.go在上面的命令中,
-X参数用于设置 Go 程序的环境变量,main.version是环境变量的名称,1.0.0是环境变量的值。-H参数用于设置 EXECL 头信息,windowsgui表示生成 Windows GUI 应用程序。注意
上面的命令需要在 Go 1.11 或更高版本中使用。
解决 无用评论 打赏 举报