Google Script App - Сохранить файл в определенной папке - PullRequest
0 голосов
/ 19 декабря 2018

То, что я пытаюсь сделать здесь с помощью этого сценария, - это прочитать информацию о конкретном листе с одним столбцом и тремя строками, затем создать текстовый файл с этими тремя строками и сохранить его в определенной папке на диске.

Пока что с помощью этого небольшого скрипта я смог создать нужный файл, но он делает это по умолчанию в корневой папке.

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», а затем удалить его из корня.Но я получаю сообщение об ошибке: «Не удалось найти элемент с данным идентификатором или у вас нет прав доступа к нему. (Строка 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);
}

У меня естьменеджер доступа к папке, поэтому я не думаю, что это проблема разрешений.Ребята, у вас есть идеи или предложения для этого?

И еще одна вещь, я не программист.Я создал этот Франкенштейн, в основном, с помощью нескольких примеров, которые я видел на этом сайте, и моего небольшого «реверсивного инжиниринга».

Спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018
  • Вы хотите переместить созданный файл из корневой папки в указанную папку.

Если я правильно понял, как насчет непосредственного создания файла в указанной папке?Я думаю, что есть несколько ответов для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.

Модифицированный скрипт:

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.Если есть несколько папок с одним и тем же именем, скажите, пожалуйста.Я хотел бы изменить его.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...