Node.JS:使用alasql将数据从mysql导出到excel

时间:2016-02-05 09:37:43

标签: mysql node.js excel alasql

我正在编写一个脚本,使用Node.JS和alasql将数据从mysql导出到excel。我可以看到examples in doing this

var mystyle = {
  headers:true, 
  column: {style:{Font:{Bold:"1"}}},
  rows: {1:{style:{Font:{Color:"#FF0077"}}}},
  cells: {1:{1:{
    style: {Font:{Color:"#00FFFF"}}
  }}}
};
alasql('SELECT * INTO XLSXML("restest280b.xls",?) FROM ?',[mystyle,data]);

但是,没有关于变量data是什么以及我应该如何构造它的文档,特别是在我的情况下使用mysql的记录集?

conn.query(SQL, function(err, rows, fields) {
    ALASQL('SELECT * INTO XLSXML("restest280b.xlsx",?) FROM ?',[mystyle,rows]); 
})

我试着直接使用mysql记录集。它写了一个文件但不能在excel中打开。

1 个答案:

答案 0 :(得分:0)

这里data是一个数组或JSON对象,例如:

var rows = [{a:1, b:10, c:'One'}, {a:2, b:20, c:'Two'} ];
alasql('SELECT * INTO XLSXML("restest280b.xlsx",?) FROM ?',[mystyle,rows]); 

如果你使用node-mysql包,你的代码应该可行。

XLSXML()函数生成XML文件,通常Windows版本的MS Excel会产生警告。如果您将jLS-xlsx库使用XLSX()函数,则可以将其删除:

var rows = [{a:1, b:10, c:'One'}, {a:2, b:20, c:'Two'} ];
alasql('SELECT * INTO XLSX("restest280b.xlsx") FROM ?',[rows]);