使用javascript

时间:2015-08-04 22:09:02

标签: javascript excel parsing

我使用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文件?

2 个答案:

答案 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加载项

enter image description here

2)。创建一个新的Funfun或从Funfun在线编辑器加载示例

enter image description here

3)。像在任何其他JavaScript编辑器中一样编写JavaScrip代码。在此步骤中,为了直接使用电子表格中的数据,您需要编写一些JSON I / O以进行Excel单元格引用。这个值在设置 - 短中的位置,但这只是几行。例如,假设我们在电子表格中有一些如下所示的数据。

enter image description here

在这种情况下,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

enter image description here

披露:我是Funfun的开发者。