前端拿到id去数据库中查询该id的数据通过后端导出该数据为excel问件
时间: 2023-05-25 19:01:43 浏览: 298
数据库信息导出到excel
A:首先,前端需要将id通过ajax请求发送给后端,后端接收到请求后,通过该id去数据库中查询对应的数据,然后将查询到的数据导出为excel文件并返回给前端。以下是一个简单的实现方式:
前端代码:
```javascript
// 假设id = 1
let id = 1;
$.ajax({
url: '/getData',
type: 'POST',
data: { id: id },
success: function(res) {
// 下载excel文件,参考以下链接
// https://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a-suggested-filename-when-using-data-uri
}
});
```
后端代码(假设使用Node.js和MySQL):
```javascript
const mysql = require('mysql');
const express = require('express');
const app = express();
const json2xls = require('json2xls');
const fs = require('fs');
// 创建MySQL连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'database_name'
});
// 处理POST请求,获取数据并导出为excel文件
app.post('/getData', (req, res) => {
let id = req.body.id;
// 查询数据库中的数据
pool.query(`SELECT * FROM table_name WHERE id = ${id}`, (err, results) => {
if (err) throw err;
// 将查询到的数据导出为excel文件
let xls = json2xls(results);
let filepath = 'file.xlsx';
fs.writeFileSync(filepath, xls, 'binary');
// 返回excel文件给前端
res.download(filepath);
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000');
});
```
另外,需要在后端安装 express、mysql、json2xls 三个模块。以上代码仅供参考,实际应用需要根据自己的情况进行修改。
阅读全文