首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用alasql导出excel表时映射键值对

使用alasql导出excel表时映射键值对
EN

Stack Overflow用户
提问于 2019-03-14 05:25:50
回答 1查看 367关注 0票数 0

我正在使用'alasql‘导出到excel表格要求。

作为alasql的输入,我的Javasript对象是

代码语言:javascript
复制
0:
  ContactEmail: "email1@example.com"
  ContactName: "abcd"
  CustomerName: "defg"
  SubdomainName: "adasdasd"
1: 
  ContactEmail: "email2@example.com"
  ContactName: "abcd"
  CustomerName: "defg"
  SubdomainName: "adasdasd"
2: 
  ContactEmail: "email3@example.com"
  ContactName: "abcd"
  CustomerName: "defg"
  SubdomainName: "adasdasd"

下面是我要导出到excel工作表的alasql脚本。

代码语言:javascript
复制
var sheet_name = 'clients.xlsx'
alasql('SELECT * INTO XLSX("'+sheet_name+'",{headers:true}) FROM ?', arrayToExport);

我的程序是,它只导出第一个键,即'0‘& '1’键值和标题,如下所示:

代码语言:javascript
复制
      0          1
CustomerName    name1
ContactName     contact1
ContactEmail    email1@example.com
SubdomainName   adasdasd

联合材料包括:

代码语言:javascript
复制
<script src="{{ asset(auto_version('public/js/alasql.min.js')) }}"></script>
<script src="{{ asset(auto_version('public/js/alasql_xlsx.js')) }}"></script>

有人能帮我解决这个问题吗。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 10:12:04

我已经解决了这个问题。我希望这可能会对其他人有所帮助。我把它修正为第一次尝试,直接给出一个不正确的javascript对象,因此,我将javascript对象转换为数组,然后转换为object,并且数组应该在一个键中:值对,用于每个数组对象迭代。我想你可能有点困惑,但看完之后你会明白的。数组对象如下所示:

arrayToExport:

代码语言:javascript
复制
[Array(11)]
0: Array(11)
   0: {CustomerName: "CName1", ContactName: "contact1", ContactEmail: "email1@example.com", SubdomainName: "domain1", Region: "USA", …}
   1: {CustomerName: "CName2", ContactName: "contact2", ContactEmail: "email2@example.com", SubdomainName: "domain2", Region: "USA", …}
   2: {CustomerName: "CName3", ContactName: "contact3", ContactEmail: "email3@example.com", SubdomainName: "domain3", Region: "USA", …}
   3: {CustomerName: "CName4", ContactName: "contact4", ContactEmail: "email4@example.com", SubdomainName: "domain4", Region: "USA", …}
   4: {CustomerName: "Sudhakar", ContactName: "contact5", ContactEmail: "email5@example.com", SubdomainName: "domain5", Region: "USA", …}
   5: { …}

我的Javascript:

代码语言:javascript
复制
$scope.doExport = function(list){
  var sheet_name = 'clients.xlsx'
  var arrayToExport = {};
  var arrData = [];
  $scope.list = list;
  var i = 0;
  angular.forEach($scope.list, function(value, key){
      var status = (value.status == 0) ? 'Pending' : 'Active';
      var region = value.region;
      region = region.toUpperCase();
      var initial = value.subscr_end_date.split(/\-/);
      var finalDate = [ initial[1], initial[2], initial[0] ].join('/'); 
      //console.log( finalDate ); 
      arrData[i] = {CustomerName:value.client_info.first_name,ContactName:value.client_info.last_name, ContactEmail:value.client_info.email,SubdomainName:value.sub_domain_name,Region:region,Status:status,SubscriptionEndDate:finalDate
            };
    i++;
  });
  arrayToExport = [arrData];
  console.log(arrayToExport);
  alasql('SELECT * INTO XLSX("'+sheet_name+'",{headers:true}) FROM ?', arrayToExport);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55155478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档