2016-01-13 43 views
-1

我正在使用xlsx读取Excel文件。它有点作品...至少第一排。我不知道我在这里有什么问题。js-xlsx未捕获TypeError:console.log不是函数

这是我的代码:

/* set up XMLHttpRequest */ 
    var url = "http://localhost/test.xlsx"; 
    var oReq = new XMLHttpRequest(); 
    oReq.open("GET", url, true); 
    oReq.responseType = "arraybuffer"; 

    oReq.onload = function(e) { 
    var arraybuffer = oReq.response; 

    /* convert data to binary string */ 
    var data = new Uint8Array(arraybuffer); 
    var arr = new Array(); 
    for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]); 
     var bstr = arr.join(""); 

    /* Call XLSX */ 
    var workbook = XLSX.read(bstr, {type:"binary"}); 

    /* DO SOMETHING WITH workbook HERE */ 
    var alphabet = "ABC".split(""); 
    var first_sheet_name = workbook.SheetNames[0]; 

    /* Get worksheet */ 
    var worksheet = workbook.Sheets[first_sheet_name]; 
    var address_of_cell, desired_cell, desired_value; 
    var descript; 

    for (i=1;i<30;i++) { 
     for (j=0;j<alphabet.length;j++) { 
     if (alphabet[j] == "A") { 
      console.log("This will be title: "+getValue(alphabet[j], i)); 
     } else if (alphabet[j] == "B") { 
      descript = getValue(alphabet[j], i); 
      console.log(""+descript); 
     } else if (alphabet[j] == "C") { 
      console.log="This will be description: " + descript+" - "+getValue(alphabet[j], i); 
     } 
     } 
    } 

    function getValue (column, row) { 
     address_of_cell = column+''+row; 
     console.log(address_of_cell); 
     /* Find desired cell */ 
     desired_cell = worksheet[address_of_cell]; 
     /* Get the value */ 
     desired_value = desired_cell.v; 
     return(desired_value); 
    } 
    }; 
    oReq.send(); 

现在的结果我在控制台得到的是:

A1 
This will be title: VI/46/1998 
B1 
30-12-1998 
C1 
Uncaught TypeError: console.log is not a function Bookmarklet.js:43 

正如你可以看到C1我得到的console.log不是温控功能,但为什么?我的错误在哪里?我究竟做错了什么?

真诚, 托马斯

回答

0

console.log环境在你的代码运行提供。或不。这取决于环境。现代浏览器提供它(至少如果你有开发工具,一些版本的IE不提供它,如果你没有)。 NodeJS提供它。

两种可能性:

  1. 您的环境并没有提供它。

  2. 确实如此,但你运行此行代码:

    console.log="This will be description: " + descript+" - "+getValue(alphabet[j], i); 
    

    覆盖它一个字符串。字符串不是函数,因此尝试在任何正确使用它的行上调用它(如console.log(address_of_cell);)现在将开始失败。

    这行应该是和别人一样,一个函数调用

    console.log("This will be description: " + descript+" - "+getValue(alphabet[j], i)); 
    
+0

噢,我的!这是巨大的失败在我身边!洛尔兹,谢谢你。 :D –

+0

我重申了答案。非常感谢你为这样一件小事而花时间。 –

相关问题