2

将 html 表导出到 excel 时出现以下错误;SCRIPT429:自动化服务器无法创建对象...此功能工作正常,但当我重新启动我的电脑和应用程序停止工作时,不知道发生了什么。

function write_to_excel() {
str = "";
var myTable = document.getElementById('myTable');
var rows = myTable.getElementsByTagName('tr');
var rowCount = myTable.rows.length;
var colCount = myTable.getElementsByTagName("tr")[0]
        .getElementsByTagName("th").length;

var ExcelApp = new ActiveXObject("Excel.Application"); //Debug shows error at this  line
var ExcelWorkbook = ExcelApp.Workbooks.Add();
var ExcelSheet = ExcelWorkbook.ActiveSheet;

ExcelApp.Visible = true;
ExcelSheet.Range("A1", "Z1").Font.Bold = true;
ExcelSheet.Range("A1", "Z1").Font.ColorIndex = 23;

// Format table headers
for ( var i = 0; i < 1; i++) {
    for ( var j = 0; j < colCount - 1; j++) {
        str = myTable.getElementsByTagName("tr")[i]
                .getElementsByTagName("th")[j].innerHTML;
        ExcelSheet.Cells(i + 1, j + 1).Value = str;
    }
    ExcelSheet.Range("A1", "Z1").EntireColumn.AutoFit();
}
for ( var i = 1; i < rowCount; i++) {
    for ( var k = 0; k < colCount - 1; k++) {
        str = rows[i].getElementsByTagName('td')[k].innerHTML;
    ExcelSheet.Cells(i + 1, k + 1).Value =  myTable.rows[i].cells[k].innerText;
    }
    ExcelSheet.Range("A" + i, "Z" + i).WrapText = true;
    ExcelSheet.Range("A" + 1, "Z" + i).EntireColumn.AutoFit();
}

return;
  }
4

1 回答 1

3

自动化服务器无法创建对象。

意味着您的 ActiveX 设置太高,因此代码无法运行。

于 2013-03-28T19:32:40.810 回答