我已經根據我的要求調整了以下腳本,但由于某種原因,它總是在我的電子表格的第 5 或第 6 張之后終止,無論作業表的實際內容是什么......任何人都可以發現錯誤或改進腳本一般讓它作業穩定?
這是我收到的錯誤訊息:
Fehler例外:對https://docs.google.com
的請求失敗,回傳代碼 429。截斷的服務器回應:<meta name="viewport" ...(使用 muteHttpExceptions 選項檢查完整回應)savePDFs @ savePDFs.gs:59
function savePDFs( optSSId, optSheetId ) {
var ss = (optSSId) ? SpreadsheetApp.openById(optSSId) : SpreadsheetApp.getActiveSpreadsheet();
var url = ss.getUrl().replace(/edit$/,'');
var parents = DriveApp.getFileById(ss.getId()).getParents();
if (parents.hasNext()) {
var folder = parents.next();
}
else {
folder = DriveApp.getRootFolder();
}
// Get array of all sheets in spreadsheet
var sheets = ss.getSheets();
// Loop through all sheets, generating PDF files.
for (var i=0; i<sheets.length; i ) {
var sheet = sheets[i];
// If provided a optSheetId, only save it.
if (optSheetId && optSheetId !== sheet.getSheetId()) continue;
//export parameters
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
'&gid=' sheet.getSheetId() //the sheet's Id
// following parameters are optional...
'&size=A4' // paper size
'&portrait=true' // orientation, false for landscape
'&scale=4' // 1= Normal 100% / 2= Fit to width / 3= Fit to height / 4= Fit to Page
'&sheetnames=false&printtitle=false&pagenumbers=false' //hide optional headers and footers
'&gridlines=false' // hide gridlines
'&fzr=false'; // do not repeat row headers (frozen rows) on each page
var options = {
headers: {
'Authorization': 'Bearer ' ScriptApp.getOAuthToken()
}
}
var response = UrlFetchApp.fetch(url url_ext, options);
var blob = response.getBlob().setName(ss.getName() ' - ' sheet.getName() '.pdf');
//the pdf is named according to the sheet - this is important for me!
}
}
uj5u.com熱心網友回復:
當我看到你的劇本時,我很擔心以下情況。
- 使用
UrlFetchApp.fetch. - 隱藏的作業表可能包含在電子表格中。
當這些點反映在你的腳本中時,它變成如下。
修改后的腳本:
function savePDFs(optSSId, optSheetId) {
var ss = (optSSId) ? SpreadsheetApp.openById(optSSId) : SpreadsheetApp.getActiveSpreadsheet();
var url = ss.getUrl().replace(/edit$/, '');
var parents = DriveApp.getFileById(ss.getId()).getParents();
if (parents.hasNext()) {
var folder = parents.next();
} else {
folder = DriveApp.getRootFolder();
}
var sheets = ss.getSheets();
for (var i = 0; i < sheets.length; i ) {
var sheet = sheets[i];
var isSheetHidden = sheet.isSheetHidden(); // <--- Added
if (isSheetHidden) continue; // <--- Added
if (optSheetId && optSheetId !== sheet.getSheetId()) continue;
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
'&gid=' sheet.getSheetId() //the sheet's Id
'&size=A4' // paper size
'&portrait=true' // orientation, false for landscape
'&scale=4' // 1= Normal 100% / 2= Fit to width / 3= Fit to height / 4= Fit to Page
'&sheetnames=false&printtitle=false&pagenumbers=false' //hide optional headers and footers
'&gridlines=false' // hide gridlines
'&fzr=false'; // do not repeat row headers (frozen rows) on each page
var options = { muteHttpExceptions: true, headers: { 'Authorization': 'Bearer ' ScriptApp.getOAuthToken() } }
var response = UrlFetchApp.fetch(url url_ext, options);
var blob = response.getBlob().setName(ss.getName() ' - ' sheet.getName() '.pdf');
Utilities.sleep(5000); // <--- Added
}
}
- 請通過測驗此腳本根據您的實際情況進行
5000調整。Utilities.sleep(5000)
參考:
- isSheetHidden()
- 睡眠(毫秒)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462038.html
