123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- var express = require('express');
- const XLSX = require('xlsx');
- var router = express.Router();
- const {queryDatabase } = require('../db/mysql')
- /* GET home page. */
- router.get('/result_info', function(req, res, next) {
- let strDate = req.query.date
- console.log(strDate);
- const sql = `SELECT * FROM result_table_${strDate}`;
- queryDatabase(sql,(err,results)=>{
- if(err){
- res.status(500).json({ error: '查询数据失败' });
- return;
- }
- res.json(results);
- console.log(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);
- })
- })
- //下载群用户表格的excel接口
- router.get('/group_user',function(req,res,next){
- const sql = 'SELECT * FROM group_user_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.group_user_name,
- item.group_user_id,
- item.group_content,
- // 将时间戳转换为年月日格式
- new Date(item.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('/result',function(req,res,next){
- const sql = 'SELECT * FROM result_table_1210';
- queryDatabase(sql,(err,results)=>{
- if(err){
- res.status(500).json({ error: '查询数据失败' });
- return;
- }
-
- // 定义表头数组,与数据库字段对应
- const headers = ["序号", "客户表去水ID个数", "累计社群人数", "已退群的ID个数", "目前社群内人数","重复在群的ID的数量","今日新增客户人数","7日内新增客户人数","30日内新增客户人数"];
- // 将查询结果处理为包含表头的二维数组形式,方便转换为Excel工作表
- const dataWithHeaders = [headers].concat(results.map(item => [
- item.id,
- item.customer_num,
- item.community_num,
- item.withdrawed_num,
- item.in_community_num,
- item.in_many_group_num,
- item.number_of_new_customers_added_today,
- item.number_of_new_customers_added_within_7_days,
- item.number_of_new_customers_added_within_30_days,
- ]));
-
- // 使用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('/trolls',function(req,res,next){
- const sql = 'SELECT * FROM shang_and_di_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.s_d_name,
- item.s_d_remark,
- item.s_d_id
- ]));
-
- // 使用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('/withdrawal',function(req,res,next){
- const sql = 'SELECT * FROM withdrawal_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.withdrawal_user_name,
- item.withdrawal_user_id,
- item.withdrawal_content,
- // 将时间戳转换为年月日格式
- new Date(item.withdrawal_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);
- })
- })
- module.exports = router;
|