javascript - 将多个html表导出到多个excel工作表中

时间:2014-06-22 14:42:41

标签: javascript php excel worksheet

我有一个页面包含一些基于先前输入过程的表。然后我添加下载excel-file按钮,访问者可以获得excel格式的文件。但是,需要的是每个表格都会显示在结果页面中,而不是在单独的工作表中生成。

我尝试的是

var tableToExcel = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,'
            , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
            , base64 = function(s) {
        return window.btoa(unescape(encodeURIComponent(s)))
    }
    , format = function(s, c) {
        return s.replace(/{(\w+)}/g, function(m, p) {
            return c[p];
        });
    };
    return function() {
        table = '.tabel_hasil';
        name = 'table';
        filename = 'aaa.xls';
        tables = [];
        if (!table.nodeType) {
            for (i = 2; i <= ($('.tabel_hasil').length + 1); i++) {
                tables.push($(".tabel_hasil:nth-of-type(" + i + ")").html());
            }
        }

        var ctx = {worksheet: name || 'Worksheet', table: tables};

        document.getElementById("dlink").href = uri + base64(format(template, ctx));
        document.getElementById("dlink").download = filename;
        document.getElementById("dlink").click();

    };
})();

结果是表总是出现在单个工作表中。 是否有任何解决方案或修改或其他?

0 个答案:

没有答案