gpt4 book ai didi

javascript - Google 脚本 doGet TypeError : Impossible to call method "getSheetByName" of null

转载 作者:行者123 更新时间:2023-11-28 07:21:29 24 4
gpt4 key购买 nike

我有一个电子表格绑定(bind)的谷歌应用程序脚本,我想使用 doGet 函数来控制从外部发送的电子表格/邮件。基本上,用户会收到一封带有两个链接的 onFormSubmit 邮件(我正在尝试使用我的代码的开发版本):

https://script.google.com/a/macros/..mydomain.../s/...myID.../dev?line=6&answer=ok
https://script.google.com/a/macros/..mydomain.../s/...myID.../dev?line=6&answer=no

函数如下:

function doGet(e){
var sp = PropertiesService.getScriptProperties();
var ssId = sp.getProperty('thisSpreadsheet');
var sheetName = sp.getProperty('richiestaFerieSheetName');
Logger.log(ssId + ' ' + sheetName)
var ss = SpreadsheetApp.openById(ssId);
Logger.log(ss + ' ' + ss.getName());
var foglioRichiestaFerie = ss.getSheetByName(sheetName);
foglioRichiestaFerie.setActiveRange((foglioRichiestaFerie.getRange(e.parameter.line, 1)));
handleRequest(e.parameter.answer=='ok' ? true : false, false);
}

但是我得到了标题中提到的 TypeError 。日志正确显示了 ssId、sheetName、ss 和 ss.getName(),因此我无法理解为什么 getSheetByName 方法无法正常工作。
有什么提示吗?
感谢您的关注!

最佳答案

您可以尝试下面的代码,看看会发生什么吗?

首先运行 init,然后像您一样使用带有参数的 url。

function init(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
PropertiesService.getScriptProperties().setProperty('richiestaFerieSheetName',ss.getSheets()[0].getName());
PropertiesService.getScriptProperties().setProperty('thisSpreadsheet',ss.getId());
}

function doGet(e){
var sp = PropertiesService.getScriptProperties();
var ssId = sp.getProperty('thisSpreadsheet');
var sheetName = sp.getProperty('richiestaFerieSheetName');
Logger.log(ssId + ' ' + sheetName)
var ss = SpreadsheetApp.openById(ssId);
Logger.log(ss + ' ' + ss.getName());
var foglioRichiestaFerie = ss.getSheetByName(sheetName);
foglioRichiestaFerie.setActiveRange((foglioRichiestaFerie.getRange(e.parameter.line, 1))).setValue('succes');
var answer = handleRequest(e.parameter.answer=='ok' ? true : false, false);
return ContentService.createTextOutput(answer).setMimeType(ContentService.MimeType.TEXT);
}

function handleRequest(result){
Logger.log('result = '+result);
return 'result is '+result;
}

使用此网址(我的测试网络应用程序): https://script.google.com/a/macros/insas.be/s/AKfycbxsbr6uBB1B22uYUipmSG-blLVrJ0JB_hmFBy3kLGt7ZQlI8pw/exec?line=6&answer=ok

您应该在浏览器中得到以下结果:

enter image description here

第一张纸中的这个

enter image description here

关于javascript - Google 脚本 doGet TypeError : Impossible to call method "getSheetByName" of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30263772/

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