【问题标题】:HTML SaveXLSX Button Prevents saving data into a XLSX file from SlickGridHTML SaveXLSX 按钮 防止将数据从 SlickGrid 保存到 XLSX 文件中
【发布时间】:2014-08-29 11:30:38
【问题描述】:

我在网页上有一个 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 文件已创建一样,尽管出现了错误。我需要在单击按钮时使用代码来提示用户,就像我不使用控制台运行该功能时的方式一样。 有谁知道我为什么会收到这个错误?

【问题讨论】:

  • 你少了一个双引号(结尾是“Test.xlsx...)。你还添加了FileSaver.js吗?查看sheetjs.com/demos/writexlsx.html的来源
  • @Nirk 我确实添加了 FileSaver.js,并在 Test.xlsx 之后添加了另一个双引号。我想当我在没有启用 Firebug 的情况下运行程序时,它运行正常。也许 Firebug 认为这是一个致命的错误或什么的。不过感谢您的反馈!

标签: javascript html blob pug slickgrid


【解决方案1】:

我的代码在没有启用 FireBug 的情况下运行良好。出于某种原因,FireBug 认为 wb.Workbook 存在致命错误或其他问题。但没有 FireBug,一切都运行顺利。如果有人知道为什么,那么我愿意听取反馈。

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    相关资源
    最近更新 更多