我需要更新google Sheets中的数据,在Google Sheets的一个列中使用ID,在另一列中使用国家名称
前两个ID的JSON输出如下所示
[
{
"ID": "AF",
"LocalizedName": "Afghanistan",
"EnglishName": "Afghanistan"
},
{
"ID": "AM",
"LocalizedName": "Armenia",
"EnglishName": "Armenia"
},
]
发布于 2021-05-19 14:14:27
在Google Sheets中,行是数组,其中每个成员代表一个列值。您的代码应该如下所示:
const sheet = SpreadsheetApp.openById('yourSpreadsheetId').getSheetByName('yourSheetName');
const data = [
{
"ID": "AF",
"LocalizedName": "Afghanistan",
"EnglishName": "Afghanistan"
},
{
"ID": "AM",
"LocalizedName": "Armenia",
"EnglishName": "Armenia"
},
]; // replace with your data fetch logic
// collect your row data into array of arrays
const rows = [];
for (const location of data) {
rows.push([location.ID, location.LocalizedName]);
}
// get range beginning at the first row and first column,
// with number of rows equels to amount of rows, and 2 as a number of cols
// and fill it with your data
sheet.getRange(1, 1, rows.length, 2).setValues(rows);
请参阅SpreadsheetApp、Spreadsheet、Sheet、Sheet.getRange()、Range.setValues()的文档
发布于 2021-05-19 14:35:42
您可以使用ARRAYFORMULA
来实现这一点。在空白Google工作表中的任何单元格中尝试此操作:
=arrayformula(split(trim(flatten(split(join(" ",regexreplace(transpose(IMPORTDATA("http://dataservice.accuweather.com/locations/v1/countries/ASI?apikey=r0wWEqEDfOM8KwWLIIw8ADXHu2JhgyeB")),"(\{.*ID.*\:)|(LocalizedName.*)|(EnglishName)|([""\[\]])","")),"}"))),":"))
IMPORTDATA
从http://dataservice.accuweather.com/locations/v1/countries/ASI?apikey=r0wWEqEDfOM8KwWLIIw8ADXHu2JhgyeB获取您的内容
TRANSPOSE
对其进行了转置。
REGEXREPLACE
删除了一些字符集。
JOIN
合并到一行。
按}
将SPLIT
拆分为多个列。
FLATTEN
将结果展平到一列中。
TRIM
去掉了前导/尾随空格。
按:
将SPLIT
拆分为多个列。
ARRAYFORMULA
在工作表上工作。
https://stackoverflow.com/questions/67604731
复制