在js中,我正在打开谷歌表,执行一些功能。然后我打开谷歌表单,并将响应目的地设置为该表。这会自动添加新工作表。但是,在脚本中,新工作表未显示。
以下是相关代码:
<div class="row">
@foreach($address as $add)
<div class="col-md-6">
Some data
</div>
@if ($loop->iteration % 2 == 0)
</div>
<div class="row">
@endif
@endforeach
</div>
然后我尝试了一些选项,例如添加睡眠,或者使用新变量重新打开文件。
var userCBsheet = SpreadsheetApp.open(userCBfile);
Logger.log("Sheet Count 1: " +userCBsheet.getNumSheets());
//this shows 8 sheets correctly
var formLL = FormApp.openById(userLLfile.getId());
formLL.setDestination(FormApp.DestinationType.SPREADSHEET,userCBsheet.getId());
Logger.log("Sheet Count 2: " +userCBsheet.getNumSheets());
//Still shows 8
如果我让函数完成,那么运行一个简单的检查,它可以工作:
//same as above, then added
var cbid=userCBsheet.getId();
var userCBsheet2 = SpreadsheetApp.openById(cbid);
Logger.log("Sheet Count 3: " +userCBsheet2.getNumSheets());
//still shows 8
所以问题是如何通过表单的setDestination函数将新创建的选项卡添加到工作表后才能访问它?
答案 0 :(得分:0)
在更改表单目标后添加SpreadsheetApp.flush(),如下所示:
var formLL = FormApp.openById(userLLfile.getId());
formLL.setDestination(FormApp.DestinationType.SPREADSHEET,userCBsheet.getId());
SpreadsheetApp.flush()
Logger.log("Sheet Count 2: " +userCBsheet.getNumSheets());