nodejs端:
const mysql = require('mysql');
const Excel = require('exceljs');
// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'your_database_name'
});
// 查询表数据并导出为Excel文件
connection.query('SELECT * FROM your_table_name', (error, results, fields) => {
if (error) throw error;
// 创建工作簿和工作表
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('Sheet1');
// 将表头添加到工作表中
const columns = [];
for (const column of fields) {
columns.push({ header: column.name, key: column.name });
}
worksheet.columns = columns;
// 将数据添加到工作表中
for (const row of results) {
worksheet.addRow(row);
}
// 生成Excel文件
const buffer = await workbook.xlsx.writeBuffer();
// 将Excel文件通过路由返回给微信小程序
res.setHeader('Content-Disposition', 'attachment; filename=your_file_name.xlsx');
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.send(buffer);
});
// 关闭数据库连接
connection.end();
微信小程序端:
wx.downloadFile({
url: url,
success(res) {
if (res.statusCode === 200) {
const filePath = res.tempFilePath;
wx.openDocument({
filePath: filePath,
showMenu: true,
success: function (res) {
console.log(res, '打开文档成功');
}
});
}
}
})