vue前端怎么接收后端接口的excel文件
时间: 2024-05-30 08:14:37 浏览: 166
vue使用axios实现excel文件下载的功能
Vue前端可以通过发送GET或POST请求,使用axios或fetch库来调用后端的接口并接收Excel文件。后端可以将Excel文件以二进制流的形式返回给前端,前端需要将二进制流转换为Excel文件,可以使用FileSaver.js库进行下载保存。具体实现可以参考以下代码示例:
// 前端代码
import axios from 'axios';
import FileSaver from 'file-saver';
// 发送请求获取Excel文件
axios.get('/api/getExcel', {
responseType: 'arraybuffer' // 声明响应类型为二进制流
}).then(response => {
// 将二进制流转换为Excel文件并下载保存
const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
FileSaver.saveAs(blob, 'example.xlsx');
}).catch(error => {
console.log(error);
});
// 后端代码
const express = require('express');
const app = express();
const fs = require('fs');
const path = require('path');
app.get('/api/getExcel', (req, res) => {
const filePath = path.join(__dirname, 'example.xlsx');
const file = fs.readFileSync(filePath);
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.send(file);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
阅读全文