javascript - 使用SheetJS/js-xlsx提取Excel数据及其在AngularJS中的用法

标签 javascript angularjs node.js excel js-xlsx

我想提取 xlsx 数据并显示到我的网页上。我使用 SheetJS/js-xlsx 从 XL 工作表中提取数据。数据已成功提取,但我不确定如何将此数据获取到 AngularJS 中以供进一步使用。

/* set up XMLHttpRequest */
var url = "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 first_sheet_name = workbook.SheetNames[0];
  /* Get worksheet */
  var worksheet = workbook.Sheets[first_sheet_name];
  var xldata = XLSX.utils.sheet_to_json(worksheet, {
    raw: true
  })
  console.log(xldata);
}

oReq.send();

在控制台中,我可以看到 test.xlsx Excel 工作表中包含的数据。要使用 xldata 变量中包含的数据,我该如何在 Angular JS 中进行操作?我试过这个。但这不起作用。有人可以帮忙吗?

   var app=angular.module("my-app",[]);
app.controller("myCtrl",function($scope){
    $scope.message=xldata;
});

<div ng-controller="myCtrl">
{{message}}
</div>

这是我收到的错误:

ReferenceError: xldata is not defined

最佳答案

xlData 似乎正在返回一个 JSON 对象。因此,您不能期望以控制台向您显示的方式看到它。

为什么你的 html 中没有 ng-repeat 来读取和显示 xldata?

在您的 html 中执行此操作

<Table>
<Thead>
<Tr>
<Th ng-repeat="(key,val) in message[0]">{{key}}</th>
</tr>
</thead>
<Tbody>
<Tr ng-repeat="(key,val) in message">
<Td>{{val}}</td>
</tr>
</tbody>
</Table>

当然,如果您共享 xldata JSON 对象的片段,建议会更容易。

关于javascript - 使用SheetJS/js-xlsx提取Excel数据及其在AngularJS中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168506/

相关文章:

javascript - 如何在 NodeJS 单元测试中模拟用户输入?

javascript - 这些控件叫什么?

javascript - 何时以及为何需要 background.html 或 background.js?

javascript - 如何使用 Protractor 访问div标签内容

node.js - 如何控制graphicsmagick(用于Node)中的输出位深度?

javascript - 防止点击 div 到底层 <a href

javascript - 当我点击它时,ng-href 除了更新链接或地址栏外没有响应(Angular Js)

node.js - 如何: Execute infinite scroll using AngularJS and change route on every new post

javascript - 如何使用 ffmpeg 创建多质量视频流系统?

javascript - 使用 jade 时出现错误 : "Failed to lookup view"