this question教導如何調整文件的文件夾以將其移至特定文件夾並移出根目錄。在特定文件夾中創建Google電子表格
它也建議使用folder.createFile直接在所需的文件夾中創建它...但它看起來createFile只適用於文檔...有沒有辦法直接在特定的文件夾中創建電子表格?
this question教導如何調整文件的文件夾以將其移至特定文件夾並移出根目錄。在特定文件夾中創建Google電子表格
它也建議使用folder.createFile直接在所需的文件夾中創建它...但它看起來createFile只適用於文檔...有沒有辦法直接在特定的文件夾中創建電子表格?
使用Apps創建電子表格腳本不適用於常規Google帳戶和Google Apps Standard Edition帳戶。但是,您始終可以製作虛擬電子表格的副本,然後使用Google Apps腳本對其進行相應修改。這是一個示例代碼。
function createSpreadsheetInfolder() {
var dummySS = DocsList.getFileById('ID of dummy SS');
var myCopy = dummySS.makeCopy('My new file');
//Get your target folder
var folder = DocsList.getFolder('ID or path of folder');
myCopy.addToFolder(folder);
}
此代碼對我的作品,我覺得這是沒有辦法避免的一步「從根源消除」,至少不是我所知道。
function createSpreadsheet() {
var folder = DocsList.getFolder('GAS');// this value as test for me
var root = DocsList.getRootFolder()
var newFileId = SpreadsheetApp.create('testNewSS').getId();// this defines the name of the new SS
var newFile = DocsList.getFileById(newFileId); // begin the 'move to folder process'
newFile.addToFolder(folder);
newFile.removeFromFolder(root);// had to do it in 2 separate steps
}
謝謝。是的,我有這樣的代碼,從另一個問題的答案派生出來......似乎Docs比Spreadsheets更平等,或者我錯過了一些東西。 – Victoria
這個問題已經在beeen answerd。 https://stackoverflow.com/a/19610700 這是一個很好solustion。
folder.createFile("name", '',MimeType.GOOGLE_SHEETS);
使用除空字符串以外的任何內容都會給我一個錯誤。
看起來像一個不錯的API,但它是一個我可以從我的電腦運行的API,我有我想要加載到電子表格中的數據,或者它只能作爲Google網站的腳本運行,就像Google APP ? – Victoria
由於已超出DocsList已被棄用,目前以下解決方案的工作原理:
var folder=DriveApp.getFoldersByName(folderName).next();//gets first folder with the given foldername
var file=SpreadsheetApp.create(fileName);
var copyFile=DriveApp.getFileById(file.getId());
folder.addFile(copyFile);
DriveApp.getRootFolder().removeFile(copyFile);
我得到''TypeError:在對象FolderIterator中找不到函數addFile。「'因爲getFoldersByName返回一個FolderIterator而不是文件夾 –
已經給出的答案似乎不工作,也許他們是過時的。
這是我的答案(爲我工作)。
var folders=DriveApp.getFoldersByName("existingFolder");
while (folders.hasNext()) {
var folder = folders.next();
var file=SpreadsheetApp.create("the file that must be in a folder");
var copyFile=DriveApp.getFileById(file.getId());
folder.addFile(copyFile);
DriveApp.getRootFolder().removeFile(copyFile);
}
這是爲我工作的解決方案。最投票答案給了我一個錯誤,因爲'var folder = DriveApp.getFoldersByName(folderName);'返回一個FolderIterator對象而不是一個實際的文件夾。謝謝您的幫助! –
誠然,我的回答是從以前的,其中沒有做正是我需要的。此功能已通過當前的Google Apps腳本和電子表格文檔進行了測試。使用重複的文件夾名稱將起作用,但將文件移至API返回的第一個文件夾。
// Arguments are a file object and a folder name.
function moveFileToFolder(file, folderName)
{
var folders = DriveApp.getFoldersByName(folderName);
var copyFile = DriveApp.getFileById(file.getId());
if (folders.hasNext()) {
var folder = folders.next();
folder.addFile(copyFile);
DriveApp.getRootFolder().removeFile(copyFile);
}
}
現在可以在一個特定的文件夾中創建谷歌電子表格。 爲此,您需要使用高級驅動器服務v2。在谷歌應用腳本編輯器的高級服務菜單中啓用它。
var oFile = placeGoogleSpreadsheetInSpecificFolder("my file", "target folder id");
var oSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(oFile.getId()));
function placeGoogleSpreadsheetInSpecificFolder(sSpreadsheetName, sTargetFolderId) {
var oGeneratedFile = Drive.Files.insert({
"mimeType": "application/vnd.google-apps.spreadsheet",
"parents": [{
id: sTargetFolderId
}],
"title": sSpreadsheetName
});
return oGeneratedFile;
}
這個解決方案對我來說工作得非常好。
嗯。似乎適用於Apps標準版。如果有其他記錄,在哪裏?因此,我們可以在文檔或功能中報告問題... – Victoria
目前,創建電子表格在我的常規Google帳戶中可以正常工作。 –