js-xlsx Uncaught TypeError: console.log is not a function
js-xlsx Uncaught TypeError: console.log is not a function
我正在使用 xlsx 读取 Excel 文件。它有点工作......至少第一行。我不知道是什么问题所以我来了。
这是我的代码:
/* 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 不是函数,但为什么呢?我的错误在哪里?我做错了什么?
真诚的,
托马斯
console.log
由您的代码 运行 所在的 环境 提供。或不。这取决于环境。现代浏览器提供它(至少如果你打开了 devtools;如果你不打开,某些版本的 IE 不提供它)。 NodeJS 提供了它。
两种可能:
您的环境不提供它。
确实如此,但是你 运行 这行代码:
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));
我正在使用 xlsx 读取 Excel 文件。它有点工作......至少第一行。我不知道是什么问题所以我来了。
这是我的代码:
/* 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 不是函数,但为什么呢?我的错误在哪里?我做错了什么?
真诚的, 托马斯
console.log
由您的代码 运行 所在的 环境 提供。或不。这取决于环境。现代浏览器提供它(至少如果你打开了 devtools;如果你不打开,某些版本的 IE 不提供它)。 NodeJS 提供了它。
两种可能:
您的环境不提供它。
确实如此,但是你 运行 这行代码:
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));