Apps Script

【Apps Script】君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述Apps Script相关的知识,希望能为你提供帮助。
谁能帮我解决我的问题?需要导出一个特定的范围(A1:J39),而不是整张表。

function SavePDFtoDrive() {var ss = SpreadsheetApp.getActiveSpreadsheet(); var ltrsht = ss.getSheetByName("Schichtübergabe-Protokoll"); var datasheet = ss.getSheetByName("Daten"); var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets(); for(var i =0; i< sheets.length; i++){ if(sheets[i].getName()!="Schichtübergabe-Protokoll"){ sheets[i].hideSheet() } } var pdf = DriveApp.getFileById(ss.getId()); var theBlob = pdf.getBlob().getAs('application/pdf').setName(datasheet.getRange("I8").getValue()+".pdf"); var folderID = "1dyKFNvQWrSiNFA8N5PyUMPJQpWSVhsLf"; // Folder id to save in a folder var folder = DriveApp.getFolderById(folderID); var newFile = folder.createFile(theBlob); }

答案答:你的答案是什么?
而不是使用 DriveApp,你可以通过使用 UrlFetchApp.
更多信息:
当你使用 DriveApp 来创建文件的blob,但它不具备读取文件细节的功能。在这种情况下,您不能指定您希望用以下方法导出的工作表的范围。DriveApp.
然而,您可以使用所有导出参数构建一个URL,并通过创建响应的blob并在Drive中创建导出。
代码。
function SavePDFtoDrive() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var ltrsht = ss.getSheetByName("Schichtübergabe-Protokoll"); var datasheet = ss.getSheetByName("Daten"); // build your URL: var url = "https://docs.google.com/spreadsheets/d/" + ss.getId() + "/export?" //define your parameters: var params = 'exportFormat=pdf& format=pdf' + '& portrait=false' + '& fitw=true' + '& gid=' + ltrsht.getSheetId() + '& range=A1:J39'; //get token for UrlFetch: var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url + params, { 'headers': { 'Authorization': 'Bearer ' + token } }); var fileName = datasheet.getRange("I8").getValue() + ".pdf"; var theBlob = response.getBlob().setName(fileName); var folderID = "1Hp-P1dzWaKHhhS2FTPzKib6pwJibS12t"; var folder = DriveApp.getFolderById(folderID); folder.createFile(theBlob); }

我希望这对你有帮助
参考文献。
  • UrlFetchApp 答案
如何在较少的列数中打印出长长的Google sheets列数?

    推荐阅读