2016-01-13 90 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

我重申了答案。非常感謝你爲這樣一件小事而花時間。 –

相關問題