【GAS、Google Spreadsheet】Googleドライブのフォルダに有るファイルを一覧で取得するスクリプトです

Code

はじまり

135ml
135ml

今回は、Google DriveにあるファイルをGoogle Spreadsheet上に取得する方法を紹介だあ!

リサちゃん
リサちゃん

ほおほお、まあGoogleドライブでフォルダを管理するなら、地味に欲しいよね。

白米を食ってるときに欲しくなる沢庵くらいのポジションだよね。

135ml
135ml

そうだね、必須ではないけど欲しいくらいのものだね。

・・・って、本当に沢庵を作ってるんだね・・・。

リサちゃん
リサちゃん

すぐ必須ではないけど欲しいくらいのものだからね。

まあ、今回のツールはもう出来てるから、気にせず見ていこうぜ。

ツールの紹介

今回のツールは、下記のシートの赤線で囲まれた部分になります。

そして、「getFileListInFolder()」ボタンを押すとスクリプトが走り、終了するとF3~H3セル以降の行に値が入ります。今回は、僕が今までクリップしたQuoraの記事がたくさん貼り付けられました。

  • F列・・・ファイルの名前
  • G列・・・ファイルのID
  • H列・・・ファイルのURL

シートの造り

シートの構成として、まずファイルの一覧を読み取る対象のフォルダは、左上のセルにあるIDのフォルダとしています。以下の画像の場合、僕が今までにクリップしたQuoraのフォルダが選択されています。

また、ボタンに割り当てられている関数は、「getFileListInFolder」となっています。

スクリプトの紹介

以下が今回使用したスクリプトになります。

拡張機能から「Apps Script」を開いて、以下のスクリプトを打ち込んで先程のシートの設定をすると、使用できます。

iで開始行を、column_for_fileListで開始列を指定して、そこを基準に欲しいデータをシートに入力するようにしています。

今回は、DriveApp.getRootFolder()ではなく、DriveApp.getFolderById(folder_id)を使用しているのが、ルートフォルダを取得するときとの違いです。

コード.gs

function getFileListInFolder() {
  var folder_id,
    folder,
    files,
    sheetName = '【出力結果】フォルダのURL',
    ss;
    name = "",
    i = 3, //フォルダを処理する行位置
    column_for_fileList = 6; // F列のインデックス
  ss = SpreadsheetApp.getActive();
  sheet = ss.getSheetByName(sheetName);
  folder_id = sheet.getRange(1, 2).getValue();
  console.log(folder_id);
  folder = DriveApp.getFolderById(folder_id);
  files = folder.getFiles();

  // var folders = DriveApp.searchFolders("'"+key+"' in parents");
  while(files.hasNext()) {
    i++;
    var file = files.next();
    sheet.getRange(i, 0+column_for_fileList).setValue(name + file.getName());
    sheet.getRange(i, 1+column_for_fileList).setValue(file.getId());
    sheet.getRange(i, 2+column_for_fileList).setValue(file.getUrl());
  }
}

おしまい

135ml
135ml

今回はこんなもんだな。

リサちゃん
リサちゃん

なるほどねえ、・・・ボリボリ

135ml
135ml

おい、もう食べてんのか!

まだ干し切れてすらいないじゃないか!

リサちゃん
リサちゃん

まあ、必須ではないけど欲しい時に食べちゃうよねえ~。

135ml
135ml

ただでさえ時間がかかるのに、いつになったらできるのやら・・・。

味なしで満足するなら、もう作らなくて良いのでは・・・。

おまけ

ペンギン
ペンギン

今回使ったシートの他の関数を紹介した記事は以下になります。よければ見てみて下さい!

以上になります!

コメント

タイトルとURLをコピーしました