Как искать файлы в указанной папке c по именам, которые у меня есть в столбце, и возвращать их URL в электронную таблицу, каждый в своей указанной строке c? - PullRequest
0 голосов
/ 10 апреля 2020

Моя цель состоит в том, чтобы добавить URL-ссылки для совместного использования (укажите c PDF-документы, хранящиеся в G Drive) во все отдельные ячейки столбца на странице Google в зависимости от имени документа. Любой скрипт, который я нахожу поисковым, но не считая, что мне нужен каждый в указанной строке.

- у меня есть все имена в столбце - у каждой строки есть свой файл PDF - все файлы находятся в определенной папке на диске Google

у кого-нибудь есть код, который может помочь мне здесь? ?

Я добавляю изображение из электронной таблицы, чтобы показать, что у меня есть и где я пытаюсь добавить URL

enter image description here

СПАСИБО!

PS: я довольно новичок в этом (гугл скрипты), я действительно ценю любую помощь.


БОЛЬШЕ О СИТУАЦИИ Это первый скрипт (создание документа с использованием данных из таблицы, которая прекрасно работает, но с этим я не знаю, как добавить функцию, которая возвращает URL ...

>

    function createDocument4  () {
  
  var headers = Sheets.Spreadsheets.Values.get('SHEET ID, 'RANGE');
  var tactics = Sheets.Spreadsheets.Values.get('SHEET ID, 'RANGE');
  var templateId = 'ADDED TEMPLATE DOC ID ';
  
  for(var i = 0; i < tactics.values.length; i++){
    
    var Text 1 = tactics.values[i][0];
    var text 2 = tactics.values[i][1];
    var text 3 = tactics.values[i][2];

    
    //Make a copy of the template file
    var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
    
    //Rename the copied file
    DriveApp.getFileById(documentId).setName(Text 1+'_'+text 2+'_'+text 3+'_'+'example');
    
    //Get the document body as a variable
    var body = DocumentApp.openById(documentId).getBody();
    
    //Insert the supplier name
    body.replaceText('{{ Text 1 }}', Text 1);
    body.replaceText('{{ Text 2 }}', Text 2);
    body.replaceText('{{ Text 3 }}', text 3);

    DocumentApp.openById(documentId).saveAndClose();

    //Make PDF copy at Drive Root
    var docFolder = DriveApp.getFileById(documentId).getParents().next().getId();
    var docName = DocumentApp.openById(documentId).getName();
    docblob = DocumentApp.openById(documentId).getAs('application/pdf');
    docblob.setName(docName + ".pdf");
    var file = DriveApp.createFile(docblob);
    var fileId = file.getId();
    moveFileId(fileId, docFolder);
  
function moveFileId(fileId, toFolderId) {
   var file = DriveApp.getFileById(fileId);
   var source_folder = DriveApp.getFileById(fileId).getParents().next();
   var folder = DriveApp.getFolderById('FOLDER ID')
   folder.addFile(file);
   source_folder.removeFile(file);
}
  }
}

1 Ответ

0 голосов
/ 10 апреля 2020

Я не могу понять, как называется название листа, но, возможно, это то, что вы хотите.

function createDocument4() {
  var headers = Sheets.Spreadsheets.Values.get('SHEET ID', 'RANGE');
  var tactics = Sheets.Spreadsheets.Values.get('SHEET ID', 'RANGE');
  var templateId = 'ADDED TEMPLATE DOC ID ';
  var ss=SpreadsheetApp.openbyid('id');
  var sh=ss.getSheets()[0];//I dont really know what the sheet is so I guess the first sheet on the left                                            
  var startRow=2;
  for(var i = 0; i < tactics.values.length; i++){
    var Text 1 = tactics.values[i][0];
    var text 2 = tactics.values[i][1];
    var text 3 = tactics.values[i][2];
    //Make a copy of the template file
    var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
    //Rename the copied file
    DriveApp.getFileById(documentId).setName(Text 1+'_'+text 2+'_'+text 3+'_'+'example');
    //Get the document body as a variable
    var body = DocumentApp.openById(documentId).getBody();
    //Insert the supplier name
    body.replaceText('{{ Text 1 }}', Text 1);
    body.replaceText('{{ Text 2 }}', Text 2);
    body.replaceText('{{ Text 3 }}', text 3);
    DocumentApp.openById(documentId).saveAndClose();
    //Make PDF copy at Drive Root
    var docFolder = DriveApp.getFileById(documentId).getParents().next().getId();
    var docName = DocumentApp.openById(documentId).getName();
    docblob = DocumentApp.openById(documentId).getAs('application/pdf');
    docblob.setName(docName + ".pdf");
    var file = DriveApp.createFile(docblob);
    var fileId = file.getId();
    moveFileId(fileId, docFolder);
    sh.getRange(i+2,9).setValue(file.getUrl());//adding the url to the spreadsheet
  }
}

function moveFileId(fileId, toFolderId) {
   var file = DriveApp.getFileById(fileId);
   var source_folder = DriveApp.getFileById(fileId).getParents().next();
   var folder = DriveApp.getFolderById('FOLDER ID')
   folder.addFile(file);
   source_folder.removeFile(file);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...