gpt4 book ai didi

javascript - Google Apps 脚本返回空值

转载 作者:行者123 更新时间:2023-12-04 08:53:07 24 4
gpt4 key购买 nike

我有一个从电子表格中提取数据的谷歌应用程序脚本函数。它能够愉快地记录信息,然后我将数据返回给一个 javascript 函数。但是当我尝试对信息进行字符串化和提醒时,它会提醒“空”。
不知道我哪里错了!
调用 GAS 函数的 Javascript:

google.script.run.withSuccessHandler(getNews).getTheNews();

气体功能:
function getTheNews(){

var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("NewsFeed");


var theNews = ws.getRange(3, 2, ws.getLastRow()-2, 1).getValues();
Logger.log(theNews);

return theNews;

}
气体日志:
enter image description here
接收信息的Javascript函数:
function getNews(theNews){
var mystr = JSON.stringify(theNews);
alert(mystr);
}

最佳答案

问题和解决方法:
不幸的是,在当前阶段,日期对象似乎无法直接从 Google Apps Script 端返回到 Javascript 端。我也可以复制你的情况。我认为这就是你的问题的原因。那么作为目前的解决方法,下面的修改如何?
修改后的脚本:
在此修改中,日期对象被转换为字符串并发送到 Javascript 端。在 Javascript 端,日期字符串被转换为日期对象。
HTML & Javascript 方面:

google.script.run.withSuccessHandler(getNews).getTheNews();

function getNews(theNews){
theNews = theNews.map(r => r.map(c => new Date(c))); // Added
var mystr = JSON.stringify(theNews);
alert(mystr);
}
Google Apps 脚本方面:
function getTheNews(){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("NewsFeed");
var theNews = ws.getRange(3, 2, ws.getLastRow()-2, 1).getValues();
return theNews.map(r => r.map(c => c.toISOString())); // Modified
}
  • 我认为在这种情况下,c.getTime()而不是 c.toISOString()也可以使用。

  • 笔记:
  • 例如,如果要检索单元格上的显示值,还可以进行如下修改。在这种情况下,不需要修改 Javascript。
  •   var theNews = ws.getRange(3, 2, ws.getLastRow()-2, 1).getValues();
  •   var theNews = ws.getRange(3, 2, ws.getLastRow()-2, 1).getDisplayValues();

  • 我也在谷歌问题跟踪器上发现了这个问题。 Ref但是当我看到状态时,似乎“不会修复(预期行为)”。

  • 引用:
  • toISOString()
  • getDisplayValues()
  • 关于javascript - Google Apps 脚本返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63984287/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com