我使用SheetJS来解析Excel工作表但是我遇到了以下错误:
"未捕获的TypeError:jszip不是函数"
执行以下代码时:
var url = "/test-files/test.xlsx";
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";
oReq.onload = function(e) {
var arraybuffer = oReq.response;
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("");
var workbook = XLSX.read(bstr, {type: "binary"});
}
oReq.send();
原始代码位于此处:https://github.com/SheetJS/js-xlsx
是否有任何建议可以更轻松地解析Excel文件?
答案 0 :(得分:5)
发布答案(评论中提供的解决方案),以防将来可能帮助其他人:
看起来您正在使用x src/xlsx.js版本的xlsx.js,它依赖于其他源文件,例如jszip.js。
要解决此问题,请使用位于dist/xlsx.js
中的dist版xlsx.js答案 1 :(得分:2)
以下是尝试在JavaScript中使用Excel文件时遇到问题的人的另一种解决方案。您可以在Funfun Excel加载项的帮助下直接在Excel中使用JavaScript,而不是使用JavaScript读取Excel文件。基本上,Funfun是一个允许您在Excel中使用JavaScript的工具,因此您无需使用编写其他代码来解析Excel文件。
基本上,你需要做的是
1)。从Office加载项商店插入Funfun加载项
2)。创建一个新的Funfun或从Funfun在线编辑器加载示例
3)。像在任何其他JavaScript编辑器中一样编写JavaScrip代码。在此步骤中,为了直接使用电子表格中的数据,您需要编写一些JSON I / O以进行Excel单元格引用。这个值在设置 - 短中的位置,但这只是几行。例如,假设我们在电子表格中有一些如下所示的数据。
在这种情况下,JSON I / O值将为:
{
"data": "=A1:E9"
}
然后在script.js文件中,你只需要使用一行代码来读取这些数据。
var dataset = $internal.data;
数据集将是一个数组,每个项目都是电子表格中的一行。您可以查看Funfun documentation以获得更多解释。
4)。运行代码以绘制图表
以下是我在Funfun在线编辑器上使用JavaScript(HighChart.js)和Excel数据制作的示例图表。你可以在下面的链接上查看它。您也可以按照步骤2中的说明轻松将其加载到Excel中。
https://www.funfun.io/1/edit/5a439b96b848f771fbcdedf0
披露:我是Funfun的开发者。