前端自选字段导出代码演示
时间: 2023-05-24 12:03:23 浏览: 104
A:以下是一个前端自选字段导出 Excel 表格的代码演示:
首先,需要在前端定义需要导出的字段和数据,并将其传递给后端:
```
// 前端定义需要导出的字段和数据
const fields = ['name', 'age', 'gender'];
const data = [
{ name: 'Alice', age: 25, gender: 'female' },
{ name: 'Bob', age: 30, gender: 'male' },
{ name: 'Charlie', age: 35, gender: 'male' },
];
// 将字段和数据传递给后端
axios.post('/export', { fields, data });
```
后端接收到前端传递的数据后,使用 ExcelJS 库生成 Excel 文件,并将其返回给前端:
```
const ExcelJS = require('exceljs');
// 处理前端传递的数据
app.post('/export', (req, res) => {
const { fields, data } = req.body;
// 创建 Excel 文件
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet1');
// 添加表头
fields.forEach((field, index) => {
worksheet.getCell(`A${index + 1}`).value = field;
});
// 添加数据
data.forEach((row, rowIndex) => {
fields.forEach((field, columnIndex) => {
worksheet.getCell(`${String.fromCharCode(66 + columnIndex)}${rowIndex + 2}`).value = row[field];
});
});
// 生成 Excel 文件并返回给前端
workbook.xlsx.write(res).then(() => {
res.status(200).end();
});
});
```
前端接收到后端返回的 Excel 文件后,通过 Blob 和 FileSaver.js 库实现文件下载:
```
// 前端处理后端返回的 Excel 文件并进行下载
axios({
url: '/export',
method: 'POST',
responseType: 'blob',
data: { fields, data },
}).then((response) => {
const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
saveAs(blob, 'data.xlsx');
});
```
以上代码可以实现一个简单的前端自选字段导出 Excel 表格的功能。
阅读全文