toExcel

webix.toExcel(id, options)

webix.toExcel helper.

Please look into the linked official documentation.

References

helpers
cdn(), require().

External references

Official documentation page.

Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
webix.toExcel = function(id, options){
    var defer = webix.promise.defer();
    var view = webix.$$(id);
    options = options || {};

    if (view.$exportView)
        view = view.$exportView(options);

    webix.require(webix.cdn + "/extras/xlsx.core.min.js", function(){
        options._export_mode = "excel";

        var scheme = getExportScheme(view, options);
        var result = getExportData(view, options, scheme);

        var spans  = options.spans ? getSpans(view, options) : [];
        var data   = getExcelData(result, scheme, spans);

        var wb = { SheetNames:[], Sheets:[]};
        var name = options.name || "Data";
        name = name.replace(/[\*\?\:\[\]\\\/]/g,"").substring(0, 31);
        wb.SheetNames.push(name);
        wb.Sheets[name] = data;

        var xls = XLSX.write(wb, {bookType:'xlsx', bookSST:false, type: 'binary'});
        var filename =  (options.filename || name)+".xlsx";

        var blob = new Blob([str2array(xls)], { type: "application/xlsx" });
        webix.html.download(blob, filename);
        defer.resolve();
    });
    return defer;
};