node如何导出数据成为excel格式

node的应用方式,导出数据

首先,你要把数据库连接上,把你要导的数据表写出来

安装模块

$ npm install sequelize
$ npm install mysql
$ npm install excel-export

引入数据库

const Sequelize = require('sequelize')
var mysql = new Sequelize('node', 'root', '123456', {
    host: 'localhost',
    dialect: 'mysql',
    pool: {
        max: 20,
        min: 5,
        idle: 30000
    },

})

module.exports = mysql

  引入数据库表结构

//引入数据库
const mysql = require('./db_config.js')
const Sequelize = require('sequelize')
//定义表结构
var rizhi = mysql.define('rizhi', {
    id: {
        primaryKey: true,
        type: Sequelize.INTEGER,
    },
    content: Sequelize.STRING,
    summary: Sequelize.STRING,
    user: Sequelize.STRING,
    day: Sequelize.STRING,
}, {
        freezeTableName: true, // Model 对应的表名将与model名相同
        timestamps: false
});

//传值
module.exports = rizhi

  获取表内容

//引入表结构
const rizhi = require('../config/DBConfig.js')
// 列表展示
const hello1 = async function (obj) {
    //查询id大于0的所有内容
    let loge = await rizhi.findAll({
        where: {
            id: { gt: 0},
        },
  //取消格式化      
        raw:true
    }) 
    return loge
}
//传出方法
module.exports = {
    hello1
}

  把表导出其他格式

//引入fs模块
const fs = require('fs')
//引入excel模块
var excelPort = require('excel-export');
//引入表内容
const services = require(`../service/LogService`);
    
const write = function(datas){
    //定义一个对象,存放内容
    var conf = {};
    //定义表头
    conf.cols = [
       {caption:'名称', type:'number', 20},
       {caption:'简介', type:'string', 40},
       {caption:'报酬', type:'string', 20},
       {caption:'时间', type:'string', 40},
       {caption:'人员', type:'string', 30},
    ];
    //创建一个数组用来多次遍历行数据
    var array = [];
    // 循环导入从数据库中获取的表内容
    for (var i=0;i<datas.length;i++){
        //依次写入
        array[i] = [
            datas[i].id,
            datas[i].content,
            datas[i].summary,
            datas[i].user,
            datas[i].day
        ];
    }
    //写入道conf对象中
    conf.rows = array;
    //生成表格
    var result = excelPort.execute(conf);
    // 定义表格存放路径
    fs.writeFile('util/util.xlsx', result, 'binary',function(err){
        if(err){
            console.log(err);
        }
    });
}
//调取数据方法
async function hellos(){
    let res = await services.hello1()
    // 把数据传个datas
    write(res)
}
//运行方法
hellos()

  以上就是node导出excel的方法,提供思考

原文地址:https://www.cnblogs.com/yishifuping/p/9921545.html