如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?
Posted
技术标签:
【中文标题】如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?【英文标题】:How to automatically update 'sitemap' function from Google Apps Script in Google Spreadsheet? 【发布时间】: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
脚本工作正常,但问题是它没有根据我创建的触发器更新信息。有人对如何解决这个问题有建议吗?
【问题讨论】:
...你忘记setValues()
了吗?
【参考方案1】:
该函数没有更新电子表格,因为没有任何语句可以这样做。
有几种方法可以做到这一点,但很有可能,假设locs
是一个二维数组对象,您应该使用range.setValues(locs)
,其中range 是目标范围。
请阅读https://developers.google.com/apps-script/guides/sheets 了解更多详细信息,或搜索此站点以了解有关将值传递到工作表的问题(有很多)。
【讨论】:
嗨@Rubén,感谢您的回复。您能否澄清一下我将如何在我的脚本中使用 range.setValues(locs) ?我已经阅读了文档,所以我知道它为什么不起作用。我也阅读了很多关于使用 range.setValues 的帖子,但我似乎无法让它在我的情况下工作。非常感谢您的帮助。我最近才开始使用 Google Apps 脚本。以上是关于如何从 Google 电子表格中的 Google Apps 脚本自动更新“站点地图”功能?的主要内容,如果未能解决你的问题,请参考以下文章
google docs电子表格导出:如何从时间、日期中删除撇号[关闭]
如何将宏应用于 Google 表格中一个电子表格中的所有表格