Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Google工作表导入数据_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 从Google工作表导入数据

Javascript 从Google工作表导入数据,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我从谷歌广告账户中检索关键字ID和点击,并将它们输入谷歌表单。 在谷歌表单中,我先做一些计算,然后再将关键字ID拉回到谷歌广告中 我该怎么做 function main() { //Step 1: Connect Google Ads to the Google Sheet var spreadsheetUrl = 'https://docs.google.com/spreadsheets/; var spreadsheet = SpreadsheetApp.openByUrl(s

我从谷歌广告账户中检索关键字ID和点击,并将它们输入谷歌表单。 在谷歌表单中,我先做一些计算,然后再将关键字ID拉回到谷歌广告中

我该怎么做

function main() {

  //Step 1: Connect Google Ads to the Google Sheet
  var spreadsheetUrl = 'https://docs.google.com/spreadsheets/;
  var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
  var ss = spreadsheet.getSheetByName('data');
  ss.clear();

 //Step 2: Create an array to store the data
  var sheetarray = [['clicks', 'ID']];

  //Step 3: Collect the data you need
  var keywords = AdsApp.keywords()
      .withCondition("Clicks > 0")
      .forDateRange("LAST_7_DAYS")
      .get();
  
  //Step 4: Add the data you got from Google Ads into the array
while (keywords.hasNext()) {
  var keyword = keywords.next();
  sheetarray.push([
      keyword.getStatsFor("LAST_7_DAYS").getClicks(),
      keyword.getId(),
    ]);
}

   
  //Step 5: Display the contents of the array
  Logger.log(sheetarray);
  if (sheetarray.length > 0) {
     
    // Step 6: Send the array's data to the Google Sheet
    ss.getRange(1, 1, sheetarray.length, sheetarray[0].length).setValues(sheetarray);
  }
  

  //Step 6: Get keyword IDs from the sheets but how??
  
  
   
}


大概


flat()不起作用,但join()起作用

我不知道你想得到什么。但是看起来有点不对
flat()
join()
的输出非常不同
flat()
返回
Array
join()
返回
String

var keyword_IDs = ss.getRange(2, 2, sheetarray_length-1, 1).getValues().flat();

Logger.log(keyword_IDs)                            // [id1, id2, id3, id4, id5]
Logger.log(keyword_IDs.constructor.name);          // Array
Logger.log(keyword_IDs.filter(x => x==",").length) // 0.0 -- it has no comas

var keyword_IDs = ss.getRange(2, 2, sheetarray_length-1, 1).getValues().join();

Logger.log(keyword_IDs);                           // "id1,id2,id3,id4,id5"
Logger.log(keyword_IDs.constructor.name);          // String
Logger.log(keyword_IDs.match(/,/g).length)         // 4.0 -- it has four comas
我收到错误:TypeError:在对象“”中找不到函数映射var CampaignExact=AdsApp.campaigns().withCondition(Campaign_Exact.get().next();var-keywords=CampaignExact.keywords().withIds(keyword_ID).get();while(keywords.hasNext()){var keyword=keywords.next();keyword.pause();}''

这几乎是无法理解的信息。对不起

错误是关于
map()
函数的。但是我在您的代码中没有看到
map()
。然而
map()
是数组的方法。不是弦的


所以我猜
带ID(关键字ID)
不起作用,因为
关键字ID
是这样的字符串
'id1,id2,id3…'
。可能应该有一个数组
关键字ID
['id1','id2','id3',…]),然后应该有
关键字ID=keywords\u ID[0]
关键字ID=keywords\u ID[1]
…等等。只是猜测。

如果您能提供
sheetarray
的内容,或者至少提供一个示例,以及您希望存储的关键字ID的结构,我们将更容易复制您的代码。您好,很抱歉不清楚。脚本的第一部分检索“data1_导出”选项卡中的数据:然后我想再次从“data2_导入”获取数据,在这里我需要一个包含“data2_导入”工作表中所有ID的数组。我如何使之成为可能?虽然这段代码可能会回答这个问题,但提供关于它如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。根据我的观察,从100次中有99次机会,我们永远不会在这条线索中看到这个问题的作者。我们永远不会知道问题出在哪里。有那么多奇怪和/或忘恩负义的人在这里发问,这让我一直感到惊讶。flat()不起作用,但join()起作用。var keyword_ID=ss_get.getRange(2,1,sheetarray.length-1,1).getValues().join();但是如何暂停来自活动的关键字ID:使用下面的代码,我得到错误:TypeError:在对象“”中找不到函数映射var CampaignExact=AdsApp.campaigns().withCondition(campaign_Exact.get().next();var-keywords=CampaignExact.keywords().withIds(keyword_ID).get();while(keywords.hasNext()){var keyword=keywords.next();keyword.pause();}''
var keyword_IDs = ss.getRange(2, 2, sheetarray_length-1, 1).getValues().flat();

Logger.log(keyword_IDs)                            // [id1, id2, id3, id4, id5]
Logger.log(keyword_IDs.constructor.name);          // Array
Logger.log(keyword_IDs.filter(x => x==",").length) // 0.0 -- it has no comas

var keyword_IDs = ss.getRange(2, 2, sheetarray_length-1, 1).getValues().join();

Logger.log(keyword_IDs);                           // "id1,id2,id3,id4,id5"
Logger.log(keyword_IDs.constructor.name);          // String
Logger.log(keyword_IDs.match(/,/g).length)         // 4.0 -- it has four comas