Google apps script 在Google Sheet中创建PDF时的循环

Google apps script 在Google Sheet中创建PDF时的循环,google-apps-script,google-sheets,Google Apps Script,Google Sheets,该函数只工作一次。它根本不循环 通过将for looping参数更改为just number并更改线的位置进行调整 function PDFAbsensi() { var sourceSpreadsheet = SpreadsheetApp.getActive(); // Get active sheet. var sheets = sourceSpreadsheet.getSheets(); var sheetName = sourceSpreadsheet.getActiveSheet()

该函数只工作一次。它根本不循环

通过将for looping参数更改为just number并更改线的位置进行调整

function PDFAbsensi() {
var sourceSpreadsheet = SpreadsheetApp.getActive();

// Get active sheet.
var sheets = sourceSpreadsheet.getSheets();
var sheetName = sourceSpreadsheet.getActiveSheet().getName();
var sourceSheet = sourceSpreadsheet.getSheetByName('PRINT ABSENSI');

// Set the output filename.
var idkelompok = sourceSheet.getRange(2,36).getValues();
var namakelompok = sourceSheet.getRange(2,2).getValues();
var nomorkelompok = sourceSheet.getRange(2,3).getValues();
var pdfName = idkelompok + " - " + namakelompok + " " + nomorkelompok;

// export url
var url = 'https://docs.google.com/spreadsheets/d/'+sourceSpreadsheet.getId()+'/export?exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&gid='+sourceSpreadsheet.getSheetByName('PRINT ABSENSI').getSheetId(); 

var token = ScriptApp.getOAuthToken(); 
var response = UrlFetchApp.fetch(url, {
headers: {
  'Authorization': 'Bearer ' +  token} });


var parents = DriveApp.getFileById(sourceSpreadsheet.getId()).getParents();
if (parents.hasNext()) {
var folder = parents.next();}
else {
folder = DriveApp.getRootFolder();}

// Loop
var jumlahpdf = sourceSheet.getRange(5,36).getValue();
for (i=0;i<jumlahpdf;i++) {

var theBlob = response.getBlob().setName(pdfName+'.pdf');

// delete pdf if already exists
var files = folder.getFilesByName(pdfName+'.pdf');
while (files.hasNext())

{files.next().setTrashed(true);}

// create pdf
var newFile = folder.createFile(theBlob);

return true;

// Delete the wasted sheet we created, so our Drive stays tidy.
DocsList.getFileById(newSpreadsheet.getId()).setTrashed(true);

// Add the number for looping function
var updatenomorkelompok = sourceSheet.getRange(2,36).setValue(idkelompok-(-1));}}
函数PDFAbsensi(){
var sourceSpreadsheet=SpreadsheetApp.getActive();
//获取活动工作表。
var sheets=sourceSpreadsheet.getSheets();
var sheetName=sourceSpreadsheet.getActiveSheet().getName();
var sourceSheet=sourceSpreadsheet.getSheetByName('PRINT ABSENSI');
//设置输出文件名。
var idkelompok=sourceSheet.getRange(2,36).getValues();
var namakelompok=sourceSheet.getRange(2,2.getValues();
var nomokerelompok=sourceSheet.getRange(2,3).getValues();
var pdfName=idkelompok+“-”+namakelompok+”+nomokerelompok;
//导出url
var url='1〕https://docs.google.com/spreadsheets/d/“+sourceSpreadsheet.getId()+”/export?exportFormat=pdf&format=pdf'//导出为pdf/csv/xls/xlsx
+“&gid=”+sourceSpreadsheet.getSheetByName('PRINT ABSENSI').getSheetId();
var token=ScriptApp.getOAuthToken();
var response=UrlFetchApp.fetch(url{
标题:{
“授权”:“持有人”+令牌});
var parents=DriveApp.getFileById(sourceSpreadsheet.getId()).getParents();
if(parents.hasNext()){
var folder=parents.next();}
否则{
folder=DriveApp.getRootFolder();}
//环路
var jumlahpdf=sourceSheet.getRange(5,36).getValue();
对于(i=0;i问题:

> <代码> > <代码> > <代码>循环> < /p>


说明:
返回将在第一个循环中完全结束函数。这是预期的行为,请参见以下内容:

return语句结束函数执行并指定要返回给函数调用方的值


例子: 下面是一个基本的
for
循环,它记录每次运行时
i
的值:

(i=0;i<3;i++)的
{
控制台日志(i);

}
什么是
Logger.log(jumlahpdf)
return?它应该是单元格中的数字是的-你检查过它是否返回了你期望的数字吗?我检查过了,我也尝试过将限制直接更改为数字,但仍然不起作用。然后我怀疑问题在于我放在单元格中执行的代码。我尝试过改变它们。它们一直只生成一个pdf。你有在<<代码>的中间< <代码> >返回<代码> > <代码>循环。