【问题标题】:Formatting to Export from Sheets to Firebase格式化以从表格导出到 Firebase
【发布时间】:2020-07-29 19:21:29
【问题描述】:

我正在为锦标赛开发应用程序/表格组合评分系统。 Firebase 数据库中的当前数据存储在如下标签下:tag:"[\"Test\",-1,12,3]" 数据采用包含单个字符串和 3 个数字的列表形式。列表中的每个索引都将存储在连续的单元格中,因此引用数据很容易。我遇到的困难是格式化工作表中的数据,以便以相同的格式将其写入数据库。 使用 JSON.stringify 并不能完全满足我的需求:

var range = sheet.getRange(22,24,4,1);
var data = JSON.stringify(range.getValues());

结果: 标签:"[[\"Test1\"],[70],[0],[18]]"

这与其余数据不完全相同,因为我正在使用 stringify 将整个范围转换为字符串,但我不知道如何将数据格式化为 [string,整数,整数,整数]。我是应用程序脚本和 java 的新手(因此我缺乏函数知识),并希望有人知道另一种方法来编写单元格范围以匹配存储在数据库中的数据。

【问题讨论】:

    标签: javascript json firebase google-apps-script google-sheets


    【解决方案1】:

    首先,Google Apps 脚本使用 JavaScript,而不是 Java。

    第二件事getValues() 返回一个数组数组,其中每个内部数组都有相应范围内的一行的值。为了得到你正在寻找的东西,你必须将getValues() 的结果展平。一种方法是:

    var range = sheet.getRange(22,24,4,1);
    var data = JSON.stringify(range.getValues().map([value] => value));
    

    var values = [["Test1"],[70],[0],[18]];
    var data = JSON.stringify(values.map(([value]) => value));
    console.info(data)

    【讨论】:

    • .flat() 会更合适。
    • @TheMaster 我刚找到flatMap()
    • Curious thing .flat() 和 .flatMap() 不包含在 Array 对象的 Google Apps 脚本自动完成方法列表中。
    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 2014-10-01
    • 2015-07-08
    • 2019-06-29
    • 1970-01-01
    • 2013-01-05
    • 2019-03-30
    相关资源
    最近更新 更多