我一直在努力建立一個特定的每周庫存系統報告。因此,為了給您一個基本的概述,我有一個母版表,我想從中生成報告,由一個 UI 按鈕觸發。然而,第一步是為該周創建一個檔案夾以放置 PDF。我可以創建該檔案夾,并且可以在我的 Google Drive 根檔案夾中生成 PDF,但之后我似乎無法將 PDF 移動到任何地方. 我試圖使用 .moveTo() 但我無法讓它作業。有人有什么建議嗎?
function onOpen(e)
{
SpreadsheetApp.getUi()
.createMenu('Physical')
.addItem('New folder','newFolder')
.addItem('Generate PDF','generatePDF')
.addToUi();
}
function newFolder(){
var today = new Date();
var week = Utilities.formatDate(today, "Europe/Amsterdam", "w"); //need to find a way to minus 1 for the current week
var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); //time to create a new folder
var spreadsheetFile = DriveApp.getFileById(spreadsheetId);
var folderId = spreadsheetFile.getParents().next().getId();
var parFolder = DriveApp.getFolderById(folderId)
var destFolder = parFolder.createFolder('Week ' week);
}
function generatePDF(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var speadsheetFile = ss.getId();
var file = DriveApp.getFileById(speadsheetFile);
var folderId = file.getParents().next().getId();
var pdf = DriveApp.createFile(ss.getBlob())
pdf.moveTo(folderId); //find way to move file either to destination folder or to parent folder
}
uj5u.com熱心網友回復:
描述
這些型別的情況很難測驗,因為情況特定于 OP 提問者。但是,我相信這會奏效。
使用 PropertyService 腳本屬性,存盤新創建的 folderId,然后從腳本屬性中獲取該 id 以移動檔案。
請注意,如果周發生變化并且未創建新檔案夾,我沒有檢查案例,pdf 將轉到上一周的檔案夾。
關于創建按鈕并將函式鏈接到按鈕,請參閱這篇文章Google 表格中的按鈕
腳本
function newFolder(){
var today = new Date();
var week = Utilities.formatDate(today, "Europe/Amsterdam", "w"); //need to find a way to minus 1 for the current week
var spreadsheetId = SpreadsheetApp.getActiveSpreadsheet().getId(); //time to create a new folder
var spreadsheetFile = DriveApp.getFileById(spreadsheetId);
var folderId = spreadsheetFile.getParents().next().getId();
var parFolder = DriveApp.getFolderById(folderId);
var folderName = 'Week ' week;
// check if folder already exists
var subFolders = parFolder.getFoldersByName(folderName);
var destFolder = null;
if( subFolders.hasNext() ) {
SpreadsheetApp.getUi().alert("Folder " folderName " already exists");
destFolder = subFolders.next();
}
else {
destFolder = parFolder.createFolder(folderName);
}
// store folder id to Script Properties
var props = PropertiesService.getScriptProperties();
props.setProperty("foldeId",destFolder.getId());
}
function generatePDF(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
// get folder id from Script Properties
var folderId = PropertiesService.getScriptProperties("folderId");
if( !folderId ) {
SpreadsheetApp.getUi().alert("Property folderId not found");
return;
}
var pdf = DriveApp.createFile(ss.getBlob())
pdf.moveTo(folderId); //find way to move file either to destination folder or to parent folder
}
參考
- SpreadsheetApp.getUi().alert()
- PropetiesService
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457231.html
上一篇:使用Google表格中的有限范圍時如何找到正確的rowId?
下一篇:根據匹配內容合并陣列的內容
