【问题标题】:How to automatically update 'sitemap' function from Google Apps Script in Google Spreadsheet?如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?
【发布时间】:2019-06-07 08:11:59
【问题描述】:

我对 Google Apps 脚本很陌生。我正在使用一个脚本,将 XML 站点地图中的 URL 提取到 Google 电子表格中。我需要它是基于时间的,以便在添加新 URL 时将其拉入。

我已经通过项目触发器向我的代码添加了一个触发器。触发器似乎已运行,但电子表格未使用新 URL 进行更新。

我正在使用以下代码

function sitemap(sitemapUrl,namespace) {
 try {
    var xml = UrlFetchApp.fetch(sitemapUrl).getContentText();
    var document = XmlService.parse(xml);
    var root = document.getRootElement()
    var sitemapNameSpace = XmlService.getNamespace(namespace);

    var urls = root.getChildren('url', sitemapNameSpace)
    var locs = []

    for (var i=0;i <urls.length;i++) {
      locs.push(urls[i].getChild('loc', sitemapNameSpace).getText()) 
    }

    return locs  
  } catch (e) {
    return e 
    }
}

脚本工作正常,但问题是它没有根据我创建的触发器更新信息。有人对如何解决这个问题有建议吗?

【问题讨论】:

标签: google-apps-script google-sheets triggers


【解决方案1】:

该函数没有更新电子表格,因为没有任何语句可以这样做。

有几种方法可以做到这一点,但很有可能,假设locs 是一个二维数组对象,您应该使用range.setValues(locs),其中range 是目标范围。

请阅读https://developers.google.com/apps-script/guides/sheets 了解更多详细信息,或搜索此站点以了解有关将值传递到工作表的问题(有很多)。

【讨论】:

  • 嗨@Rubén,感谢您的回复。您能否澄清一下我将如何在我的脚本中使用 range.setValues(locs) ?我已经阅读了文档,所以我知道它为什么不起作用。我也阅读了很多关于使用 range.setValues 的帖子,但我似乎无法让它在我的情况下工作。非常感谢您的帮助。我最近才开始使用 Google Apps 脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多