var express = require('express'); const XLSX = require('xlsx'); var router = express.Router(); const {queryDatabase } = require('../db/mysql') /* GET home page. */ router.get('/info', function(req, res, next) { const sql = 'SELECT * FROM result_table_1210'; queryDatabase(sql,(err,results)=>{ if(err){ res.status(500).json({ error: '查询数据失败' }); return; } res.json(results); }) // res.render('index', { title: 'Express' }); }); //下载入群表格的excel接口 router.get('/join_group', function(req,res,next){ const sql = 'SELECT * FROM join_group_table'; queryDatabase(sql,(err,results)=>{ if(err){ res.status(500).json({ error: '查询数据失败' }); return; } // 定义表头数组,与数据库字段对应 const headers = ["序号", "群用户名称", "入群的用户id", "入群名称", "入群时间"]; // 将查询结果处理为包含表头的二维数组形式,方便转换为Excel工作表 const dataWithHeaders = [headers].concat(results.map(item => [ item.id, item.join_user_name, item.join_user_id, item.join_content, // 将时间戳转换为年月日格式 new Date(item.join_group_time * 1000).toLocaleDateString() ])); // 使用xlsx库将处理后的数据转换为Excel工作簿对象 const worksheet = XLSX.utils.aoa_to_sheet(dataWithHeaders); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 将工作簿对象转换为二进制数据 const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' }); // 设置响应头,告知浏览器这是一个Excel文件下载 res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); res.setHeader('Content-Disposition', 'attachment; filename="join_group_table.xlsx"'); // 将Excel文件数据发送给浏览器 res.send(excelBuffer); }) }) //下载删除朋友表格的excel接口 router.get('/delete_friend',function(req,res,next){ const sql = 'SELECT * FROM delete_friend_table'; queryDatabase(sql,(err,results)=>{ if(err){ res.status(500).json({ error: '查询数据失败' }); return; } // 定义表头数组,与数据库字段对应 const headers = ["序号", "删除的用户名", "删除用户id", "删除内容", "删除时间"]; // 将查询结果处理为包含表头的二维数组形式,方便转换为Excel工作表 const dataWithHeaders = [headers].concat(results.map(item => [ item.id, item.delete_user_name, item.delete_user_id, item.delete_content, // 将时间戳转换为年月日格式 new Date(item.delete_time * 1000).toLocaleDateString() ])); // 使用xlsx库将处理后的数据转换为Excel工作簿对象 const worksheet = XLSX.utils.aoa_to_sheet(dataWithHeaders); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 将工作簿对象转换为二进制数据 const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' }); // 设置响应头,告知浏览器这是一个Excel文件下载 res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); res.setHeader('Content-Disposition', 'attachment; filename="join_group_table.xlsx"'); // 将Excel文件数据发送给浏览器 res.send(excelBuffer); }) }) module.exports = router;