LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Thursday, June 13, 2019

ファイルを指定フォルダに追加したい(UI)


Google ドライブのファイルは複数のフォルダに入れておくことができます

ここでは指定したフォルダにファイルを「追加」するUIを作ります

「移動」ではないため、元のフォルダにもファイルは残ります






コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile('index');
}

function addFileToFolder(file_id, folder_id) {
  var folder = DriveApp.getFolderById(folder_id);
  var file = DriveApp.getFileById(file_id);
  folder.addFile(file);
}

意訳
この機能がやること
指定したHTMLファイルを表示する


この機能がやること
Googleドライブ内でfolder_idのフォルダを取得して
file_idのファイルを取得して
フォルダに追加する





index.html
<!DOCTYPE html>
<html>
  <body>
    Add file to target folder<br>
    <input type="text" id="file_url"> FILE URL<br>
    <input type="text" id="folder_url"> FOLDER URL<br>
    <button id="bt">Add</button><br>
    <a id="folder_link" target="_blank"></a>
    
    <script>
    elem('bt').onclick = btClicked;
    
    function elem(id) {
      return document.getElementById(id);
    }
    
    function btClicked() {
      elem('folder_link').textContent = '';
      var file_url = elem('file_url').value;
      var folder_url = elem('folder_url').value;
      
      var file_id = file_url.split('/d/')[1].split('/')[0];
      var folder_id = folder_url.split('/folders/')[1];
      
      google.script.run
      .withFailureHandler(onFailure)
      .withSuccessHandler(onSuccess)
      .withUserObject(folder_url)
      .addFileToFolder(file_id, folder_id);
    }
    
    function onSuccess(result, folder_url) {
      elem('folder_link').href = folder_url;
      elem('folder_link').textContent = folder_url;
    }

    function onFailure(e) {
      alert([e.message, e.stack]);
    }
    </script>
  </body>
</html>



Latest post

Extracting data from Google Sheets with regular expressions

Introduction Regular expressions are a powerful tool that can be used to extract data from text.  In Google Sheets, regular expressions ca...