123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- 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;
|