HTML SaveXLSX按钮防止从SlickGrid将数据保存到XLSX文件中

时间:2014-07-08 16:13:42

标签: javascript html blob pug slickgrid

我在网页上有一个SlickGrid,我正在尝试添加一个按钮来调用函数CreateXLSX()。当我在Main.jade中编辑代码时,我输入:

input(type = 'button', value = 'SaveXLSX', onclick = 'createXLSX();') 

createXLSX()函数是:

var inputData = getData();
var ws_name = "SheetJS";
var wb = Workbook(), ws = sheet_from_array_of_arrays(data);
wb.SheetNames.push(ws_name);
wb.Sheets[ws.name] = ws;
var result = XLSX.write(wb, {bookType: 'xlsx',
                             bookSST:false, type: 'binary'});
saveAs(new Blob([s2ab(result)],
       {type: "application/octet-stream"}), "Test.xlsx);
}

当我在FireBug的控制台窗口中执行createXLSX()时,解析工作正常。它会创建一个包含网格中所有数据的.xlsx文件。但是当我使用按钮时,我收到错误:

wb.Workbook is undefined

当我刷新页面时,会弹出打开/保存控制台,就像创建.xlsx文件一样,尽管有错误。当按钮被点击时,我需要代码,以提示用户在我没有使用控制台运行该功能时它是如何做的。 任何人都知道我为什么会收到这个错误?

1 个答案:

答案 0 :(得分:1)

我的代码在没有启用FireBug的情况下工作正常。出于某种原因,FireBug认为wb.Workbook存在致命错误。但是没有FireBug,一切都顺利进行。如果有人知道为什么那么我愿意听取反馈。