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

Node.JS: export data from mysql to excel using alasql

我正在编写一个脚本,使用 Node.JS 和 alasql. I can see examples in doing this.

将数据从 mysql 导出到 excel
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 中打开。

这里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 会产生警告。如果你将 XLSX() 函数与 js-xlsx 库一起使用,你可以消除它:

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