在一个特定的文件夹中创建一个谷歌电子表格(create a Google spreadsheet i

2019-07-04 06:49发布

这个问题教导如何调整文件的文件夹,将其移动到特定的文件夹,并从根。

它也建议使用folder.createFile直接在目标文件夹创建它...但它出现的CreateFile仅适用于文档...有没有办法直接在一个特定的文件夹创建一个电子表格?

Answer 1:

由于已超出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);


Answer 2:

创建使用Google Apps脚本不正规谷歌账号和谷歌企业应用套件标准版帐户工作表格。 但是,你总是可以让一个虚拟的电子表格的副本,然后相应地使用谷歌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);
}


Answer 3:

已经给出的答案似乎不工作,也许他们是过时的。

下面是我的回答(为我工作)。

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);
}


Answer 4:

诚然,我的回答是从以前的,其中没有做正是我需要的。 该功能已经过测试,目前谷歌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); } } 



Answer 5:

现在可以在一个特定的文件夹中创建谷歌电子表格。 对于那些需要使用先进的驱动服务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;
}

该解决方案完美地工作对我罚款。



Answer 6:

此代码对我的作品,我觉得这是没有办法避免的一步“从根源消除”,至少不是我所知道。

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 
}


Answer 7:

这个问题已经在beeen answerd。 https://stackoverflow.com/a/19610700这是一个很好solustion。

folder.createFile("name", '',MimeType.GOOGLE_SHEETS);

使用任何东西,但一个空字符串给我留下了一个错误。



文章来源: create a Google spreadsheet in a particular folder