我要在此脚本中执行的操作是读取具有一列三行的特定工作表的信息,然后创建具有这三行的txt文件并将其保存到驱动器中的特定文件夹中。 / p>
到目前为止,使用这个小脚本,我可以创建所需的文件,但默认情况下,它在根文件夹中完成该操作。
function export() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheetByName("T2001D");
var values = sheets.getDataRange().getValues();
var text = "";
for (var j in values)
{
text += values [j][0]+"\n";
}
var ff = DriveApp.createFile("T2001D",text,MimeType.PLAIN_TEXT);
}
我最近的尝试是这样,我试图将根目录中的文件复制到文件夹“ T2001D-Test”中,然后从根目录中删除它。但是我收到一个错误消息,提示“找不到具有给定ID的项目,或者您没有访问权限。(第13行,文件“代码”)”
function export() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheetByName("T2001D");
var values = sheets.getDataRange().getValues();
var text = "";
for (var j in values)
{
text += values [j][0]+"\n";
}
var ff = DriveApp.createFile("T2001D",text,MimeType.PLAIN_TEXT);
var fileID = DriveApp.getFilesByName("T2001D");
var folderID = DriveApp.getFoldersByName("T2001D - Test");
var file = DriveApp.getFileById(fileID).getName();
var folder = DriveApp.getFolderById(folderID);
var newFile = file.makeCopy(file, folder);
}
我对该文件夹具有管理员访问权限,所以我认为这不是权限问题。你们有什么想法或建议吗?
还有一件事,我不是程序员。我主要通过在此站点上看到的一些示例以及我的一些“可逆工程”创建了这个科学怪人。
谢谢!
答案 0 :(得分:0)
如果我的理解正确,那么直接将文件创建到特定文件夹该怎么办?我认为您的情况有几个答案。因此,请将此视为其中之一。
function export() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheetByName("T2001D");
var values = sheets.getDataRange().getValues();
var text = "";
for (var j in values) {
text += values [j][0]+"\n";
}
var folder = DriveApp.getFoldersByName("T2001D - Test").next();
var ff = folder.createFile("T2001D",text,MimeType.PLAIN_TEXT);
// if you want to retrieve the file ID of "T2001D", please use ff.getId()
}
getFilesByName()
和getFoldersByName()
方法检索的值是迭代器。
T2001D - Test
的文件夹在您的Google云端硬盘中仅存在一个。如果有多个同名文件夹,请告诉我。我想修改它。