如何使用googleappscript创建另一个文件夹



我在谷歌应用程序脚本中有这个现有的代码,它命令我的工作将其转换为pdf文件,并将转到它的文件夹。

示例:

我正在制作发票,它会自动转换为PDF,所有PDF文件都会转到另一个文件夹名称";发票";,客户的所有发票都将收集在那里。

然而,我需要将这些pdf文件分开,并创建以客户命名的文件夹。也就是说,在文件夹发票中,我需要根据客户的名称命名另一个文件夹,在客户的文件夹中,他们所有的发票都会聚集在那里。

然而,我无法获得正确的代码。我现在应该在代码中添加哪些可能的代码?

function makePDF() {

// Get the currently active spreadsheet URL (link)
var ss = SpreadsheetApp.getActiveSpreadsheet();
var token = ScriptApp.getOAuthToken();
var sheet = ss.getSheetByName("Paycheck");
//Creating an exportable URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
var folderID = "1y2_Rw_4l4SZ1i7SaMJLW3953FI9YRTAs"; // Folder id to save in a folder.
var folder = DriveApp.getFolderById(folderID);
var employeeName = ss.getRange("'Paycheck'!C4").getValue()
var pdfName = employeeName + " - " + Utilities.formatDate(new Date(), "GMT+8", "yyyy-MM-dd");
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext = 'exportFormat=pdf&format=pdf'        // export as pdf / csv / xls / xlsx
+ '&size=letter'                       // paper size legal / letter / A4
+ '&portrait=true'                    // orientation, false for landscape
+ '&fitw=true&source=labnol'           // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false'                         // do not repeat row headers (frozen rows) on each page
+ '&gid=';                             // the sheet's Id

// Convert individual worksheet to PDF
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers: {
'Authorization': 'Bearer ' +  token
}
});

//convert the response to a blob
var blobs = response.getBlob().setName(pdfName + '.pdf');

//saves the file to the specified folder of Google Drive
var newFile = folder.createFile(blobs);

// Define the scope
Logger.log("Storage Space used: " + DriveApp.getStorageUsed());
}

我相信您的目标如下。

  • 您想要创建一个值为pdfName的新文件夹,并将创建的PDF文件放在该文件夹中

在这种情况下,按如下方式修改脚本如何?

发件人:

//convert the response to a blob
var blobs = response.getBlob().setName(pdfName + '.pdf');
//saves the file to the specified folder of Google Drive
var newFile = folder.createFile(blobs);

收件人:

//convert the response to a blob
var blobs = response.getBlob().setName(pdfName + '.pdf');
// I added below script.
var folders = folder.getFoldersByName(pdfName);
folder = folders.hasNext() ? folders.next() : folder.createFolder(pdfName);
//saves the file to the specified folder of Google Drive
var newFile = folder.createFile(blobs);
  • 在该修改中,如果var folder = DriveApp.getFolderById(folderID);的文件夹中已经存在相同的文件夹,则将该文件放在现有文件夹中。当文件夹中不存在相同的文件夹时,pdfName会在var folder = DriveApp.getFolderById(folderID);的文件夹下创建一个新文件夹,并将文件放入创建的文件夹中

参考文献:

  • getFoldersByName(名称)
  • createFolder(名称)

相关内容

  • 没有找到相关文章

最新更新