この質問は、ファイルのフォルダーを調整して、ファイルを特定のフォルダーに移動し、ルートから移動する方法を教えています。
また、folder.createFile を使用して目的のフォルダーに直接作成することも提案しています...しかし、createFile はドキュメントにのみ適用されるようです...特定のフォルダーにスプレッドシートを直接作成する方法はありますか?
この質問は、ファイルのフォルダーを調整して、ファイルを特定のフォルダーに移動し、ルートから移動する方法を教えています。
また、folder.createFile を使用して目的のフォルダーに直接作成することも提案しています...しかし、createFile はドキュメントにのみ適用されるようです...特定のフォルダーにスプレッドシートを直接作成する方法はありますか?
Apps Script を使用したスプレッドシートの作成は、通常の Google アカウントと Google Apps Standard Edition アカウントでは機能しません。ただし、いつでもダミー スプレッドシートのコピーを作成し、Google Apps Script を使用して適宜変更することができます。これがサンプルコードです。
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);
}
すでに与えられた答えはうまくいかないようです。おそらくそれらは時代遅れです。
これが私の答えです(私のために働いた)。
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);
}
この質問は https://stackoverflow.com/a/19610700 で回答されています。
folder.createFile("name", '',MimeType.GOOGLE_SHEETS);
空の文字列以外を使用すると、エラーが発生します。
このコードは私にとってはうまくいきます。少なくとも私が知っていることではありませんが、「ルートから削除」ステップを回避する方法はないと思います。
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
}