首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将SQL数据库下载为CSV而不是select行

将SQL数据库下载为CSV而不是select行
EN

Stack Overflow用户
提问于 2019-04-16 02:52:48
回答 1查看 106关注 0票数 0

我使用一个函数将列表对象中的一些选择作为CSV下载。我想对连接到Lists对象的整个数据源执行相同的操作,但是我不确定如何缩放以处理100,000行。在下载列表数据为CSV的按钮上,我有:

var rows = widget.root.descendants.MainTableBody.children._values;
var csvdata = [];

csvdata.push([["Email"],["Last Login"],["Sku ID"],["Sku Name"],["Docs Added Recently"]]);

for (var i in rows) {
  var t = [];
  t.push(rows[i].children.EmailField.text);
  t.push(rows[i].children.LastLoginField.text);
  t.push(rows[i].children.SkuIdField.text);
  t.push(rows[i].children.SkuNameField.text);
  t.push(rows[i].children.DocsAddedField.text);
  csvdata.push(t);
}

console.log(csvdata);
exportToCsv("LMexport",csvdata);

导出函数取自this answer,.I基本上需要rows变量来覆盖整个表,但这需要大量的数据。

有问题的数据源的模式:

以及使用的计算:

下面是该表在UI中的外观,以供参考:

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 03:29:44

从查询中检索到的

  • 记录是对象数组
  • 您可以使用.reduce将其转换为csv

代码片段:

function exportCsv(){
 var query = app.models.Employees.newQuery();
 //query.filters.... use query used to populate the datasource
 var records = query.run(); //[{},{},{}...]
 var csv = records.reduce(function(str, rec){
  var email = rec.Email;
  var login = rec.LastLogin;
  var skuId = rec.SkuId;
  return str + '"' + [email,login,skuId].join('","') + '"\n'; // result: "email","login","skuId"\n
},'');
return csv;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55695608

复制
相关文章

相似问题

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