使用javascript将表导出到Excel文件

时间:2016-06-27 07:09:57

标签: javascript excel internet-explorer

我能够使用Active X控件使用JavaScript创建XLS文件。

对于IE,我做了以下事情:

    var objExcel = new ActiveXObject("Excel.Application");
    objExcel.visible = false; 
    var objWorkbook = objExcel.Workbooks.Add; 
    var objWorksheet = objWorkbook.Worksheets(1); 
    objWorksheet.Paste; 
    objExcel.visible = true;

但是要使用ActiveX控件我需要转到Internet选项 - >安全性 - >自定义级别 - >启用初始化和脚本未标记为可安全执行脚本的ActiveX控件。启用此功能后,我只能创建XLS文件。

除了活动X之外,还有其他方法可以在IE-11中创建XLS文件 我尝试使用以下

var vDiv = document.getElementById('dvData');
                    vDiv.innerHTML = vTable;
                    var url='data:application/vnd.ms-excel,' + encodeURIComponent($('#dvData').html()) ;

但它不适用于IE-11。我需要使用纯javascript。

提前致谢

1 个答案:

答案 0 :(得分:1)

首先你需要convert the table to a way that excel can understand it.
期望在excel中开箱即用的HTML代码是错误的。

一旦你得到了正确格式的数据,你应该创建一个Blob并下载,一个好的lib来帮助保存blob是FileSaver.js

var chunk = '<?xml version="1.0"?>...'
var blob = new Blob([chunk], {type: 'application/vnd.ms-excel'})
saveAs(blob, 'filename.xls') // using FileSaver.js