Vin*_*e G 6 google-sheets google-apps-script
我有一个存储在电子表格中的列表目录,其中的不同列类似于不同的数据点,如下所示-

我想要实现的是在JSON中获取列A,C和D。
到目前为止,这是我一直在使用的代码,但这为我提供了工作表中的所有数据点-
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = ss.getDataRange();
var values = range.getValues();
var json = JSON.stringify(values);
Logger.log(json);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它没有以我需要的格式提供输出,这更像是键值对的JSON,用于:
有人可以让我知道我要去哪里吗?谢谢。
尝试这个 -
//function myFunction() {
// var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// var range = ss.getDataRange();
// var values = range.getValues();
// var json = JSON.stringify(values);
// Logger.log(json);
//}
function myFunction() {
var dataArray = [];
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rangeData = ss.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var range = ss.getRange(2,1, lastRow-1, lastColumn);
var data = range.getValues();
for (var i = 0; i < lastRow-1; i++) {
var dataJSON = json(data[i]);
dataArray.push(dataJSON);
}
Logger.log(JSON.stringify(dataArray));
return dataArray;
}
function json(row) {
return {
"Name" : row[0],
"PhoneNumber" : row[2],
"Address" : row[3]
}
}
Run Code Online (Sandbox Code Playgroud)
显然,有更好,更优化的方法可以从电子表格中获取JSON,但这是我一直在使用的,并且到目前为止从未使我失败。
您应该看到如下输出:
[
{
"Name":"A",
"PhoneNumber":"C",
"Address":"D"
},
{
"Name":"E",
"PhoneNumber":"G",
"Address":"H"
},
{
"Name":"I",
"PhoneNumber":"K",
"Address":"L"
}
]
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助,但也请随时告知以防万一。
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |