poi返回流,vue下载excel打开显示[object Object]
时间: 2023-12-04 15:02:40 浏览: 173
你好,当你使用 `poi` 库将 Excel 文件生成为流(`InputStream`)时,你需要将这个流转换成可供浏览器下载的文件格式,例如 `blob` 对象。以下是一个示例代码,可以将 `poi` 生成的 `InputStream` 转换成 `blob` 对象,并使用前端下载文件:
```javascript
axios({
url: 'your_api_url',
method: 'GET',
responseType: 'arraybuffer'
}).then(response => {
const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.xlsx');
document.body.appendChild(link);
link.click();
});
```
首先,我们需要将 `responseType` 属性设置为 `arraybuffer`,表示响应数据以二进制数据形式返回。然后,将 `InputStream` 转换成 `Blob` 对象,并设置 MIME 类型为 `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,这是 Excel 文件的 MIME 类型。接着,创建一个 URL,将其赋值给下载链接的 `href` 属性,最后触发下载链接的点击事件即可下载 Excel 文件。希望这可以帮到你!
阅读全文