Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS HTML表格到Excel文件下载IE_Javascript - Fatal编程技术网

Javascript JS HTML表格到Excel文件下载IE

Javascript JS HTML表格到Excel文件下载IE,javascript,Javascript,我有一个HTML表格,我正在将其内容导出到Excel,这就是我所做的 function CreateExcelSheet() { var x = document.getElementById("testTable").rows; var xls = new ActiveXObject("Excel.Application"); xls.visible = true; xls.Workbooks.Add

我有一个HTML表格,我正在将其内容导出到Excel,这就是我所做的

function CreateExcelSheet() {
            var x = document.getElementById("testTable").rows;
var xls = new ActiveXObject("Excel.Application");
            xls.visible = true;
            xls.Workbooks.Add
            for (i = 0; i < x.length; i++) {
                var y = x[i].cells;
                for (j = 0; j < y.length; j++) {
                    xls.Cells(i + 1, j + 1).Value = y[j].innerText;
                }
            }
            xls.Visible = true;
            xls.UserControl = true;
            return xls;
}
函数CreateExcelSheet(){
var x=document.getElementById(“testTable”).rows;
var xls=新的ActiveXObject(“Excel.Application”);
xls.visible=true;
xls.Workbooks.Add
对于(i=0;i
它正确地生成Excel,但是在生成后打开它,我必须在生成后下载它。在这种情况下,我不知道如何调用window.location.href。 我只能在IE中执行此操作。

尝试以下操作:-

HTML:-

<a  onclick="tableToExcel('table_id', 'SHEET1')" class="btn btn-primary">Export to Excel </a>
导出到Excel
JS:-


/这个怎么样。它可以在我这边使用IE。但问题是它运行缓慢,几乎需要半分钟才能完成Excel。但不管怎样,它还是有效的

var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
“data.d”中的Ajax回调响应
最好的方法是通过返回API响应来回调表数据。

我已经尝试过了,这段代码在FF和Chrome中工作,但在IEDescription中没有。如果您描述一下您的程序代码块,它会更有帮助。
var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
var HeaderName = 'Download-ExcelFile';
                var ua = window.navigator.userAgent;
                var msieEdge = ua.indexOf("Edge");
                var msie = ua.indexOf("MSIE ");

                if (msieEdge > 0 || msie > 0) {
                    if (window.navigator.msSaveBlob) {
                        var dataContent = new Blob([data.d], {
                            type: "application/csv;charset=utf-8;"
                        });

                        var fileName = HeaderName + '_' + parseInt(Math.random() * 10000000000) + '.xls';
                        navigator.msSaveBlob(dataContent, fileName);
                    }
                    return;
                }

                window.open('data:application/vnd.ms-excel,' + encodeURIComponent(data.d));