2016-02-05 162 views
1

我正在编写一个脚本来使用Node.JS和alasql将数据从mysql导出到excel。我可以看到examples in doing thisNode.JS:使用alasql将数据从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中打开。

回答

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]); 

如果您使用节点mysql的包,你的代码应该工作。

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

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

谢谢。我早点解决了这个问题,事实确实如此 – Lee