2

我想提取 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

4

1 回答 1

0

似乎 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 对象的片段,建议会更容易。

于 2017-11-30T09:58:11.513 回答