首页 > 解决方案 > 从表格导出到 Firebase 的格式

问题描述

我正在为锦标赛开发应用程序/表格组合评分系统。Firebase 数据库中的当前数据存储在如下标签下:标签:"[\"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, int,int ,int]。我是应用程序脚本和 java 的新手(因此我缺乏函数知识),并希望有人知道另一种方法来编写单元格范围以匹配存储在数据库中的数据。

标签: javascriptjsonfirebasegoogle-apps-scriptgoogle-sheets

解决方案


首先,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)


推荐阅读