【问题标题】:google script - json into google sheet谷歌脚本 - json 到谷歌表
【发布时间】:2013-08-01 16:43:12
【问题描述】:

我是脚本新手,非常感谢您的帮助。对于一个简单的问题,我深表歉意。

我有一个提供json的api:

[{"id":"xyz","name":"xy"}, {"id":"zyx","name":"yx"}]

上面继续让我们说另外 100 个 id。

我想要的是把它放到谷歌电子表格的单元格中。

我目前拥有的是:

var ss = SpreadsheetApp.getActive();
var sh = ss.getActiveSheet();
var rr = sh.getRange(3,2,100,5);

var id = "www.xyz.com/api";
var jsonData = UrlFetchApp.fetch(id);
var jsonString = jsonData.getContentText();
var idsearch = JSON.parse(jsonString);

for (var i = 1; i < idsearch.count; i++)
  {
     var cellid = rr.getCell(i,1);
     eventid.setValue(idsearch.results[i].id);
     var cellname = rr.getCell(i,2);
     eventname.setValue(idsearch.results[i].name);
  }

当我运行脚本时,什么也没有发生。它不返回任何东西。

我在脚本中犯了错误吗?有没有更简单的方法将所有 json 结果放入谷歌表?有没有可以让我了解我正在尝试做什么的示例?

非常感谢。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    我希望这个简单的代码可以帮助你。

    function myFunction() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ss.getSheets();
      var sheet = ss.getActiveSheet();
    
      var dataSet = [
        {"id":"xyz","name":"xy"},
        {"id":"zyx","name":"yx"}
      ]; 
      var rows = [],
          data;
    
      for (i = 0; i < dataSet.length; i++) {
        data = dataSet[i];
        rows.push([data.id, data.name]);
      }
    
      dataRange = sheet.getRange(1, 1, rows.length, 2);
      dataRange.setValues(rows);
    
    }
    

    【讨论】:

    • 这行得通,谢谢。现在要弄清楚这一切:D 快速问题,如何 var rows = [], data;工作?我尝试搜索..然后意识到不知道我在搜索什么。再次感谢您的帮助。
    • 这个解决方案对于可以有 12000-18000 个 ID 的 JSON 是否可行,因为我们知道 Google App Script 的最大执行时间为 5 分钟。
    【解决方案2】:

    您可能还想查看此处的示例(它基于 ScriptDb,但适用于任何 JSON 数组)。 https://developers.google.com/apps-script/scriptdb#copy_a_database_to_a_new_sheet_in_a_spreadsheet

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      相关资源
      最近更新 更多