excel - 如何用大摇大摆的方式发送 REST 响应 excel 文件?
问题描述
我正在尝试发送响应 excel 文件,但在其中我得到二进制数据。如果尝试使用响应数据作为 xlsx 文件,Excel 显示它已损坏。但是,如果将其保存在本地,一切都很好。对于创建 xlsx 文件,我使用的是 tealeg/xlsx。我究竟做错了什么?
去:
file := xlsx.NewFile()
...
// filling file with data
...
// works fine
err = file.Save("asd.xlsx")
if err != nil {
fmt.Printf(err.Error())
}
// something went wrong
buffer := new(bytes.Buffer)
if err := file.Write(buffer); err != nil {
return nil, err
}
r := bytes.NewReader(buffer.Bytes())
cr := ioutil.NopCloser(r)
昂首阔步:
get:
tags:
- "Report"
summary: ""
description: ""
consumes:
- "application/json"
produces:
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
responses:
200:
description: ""
schema:
type: file
解决方案
在通过 http 编写 xlsx 有效负载之前,您需要添加 Content-Type 标头。
r.Header.Set("Content-Type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
推荐阅读
- pine-script - Tradingview Pinscript
- python - Django如何验证用户是否已经存在
- java-8 - 更新 Fuse 以获得 TLS v1.3
- c - 在一行中获取两个输入 C
- linkedin - 访问 Linkedin 访问令牌以进行 api 帖子共享
- python - 如何将一个项目始终放在 PyQtGraph 中的其他项目之上?
- java - 每次我在模拟器上运行时,应用程序都会停止
- fortran - Fortran 运行时错误:列表输入的第 1 项中的实数错误:错误终止。回溯:
- android - 在 Canvas Bitmap Android 中调整大小时图像像素化
- java - 要在 Google 登录中查找语言下拉列表的 xpath