はじまり
今回は、Google DriveにあるファイルをGoogle Spreadsheet上に取得する方法を紹介だあ!
ほおほお、まあGoogleドライブでフォルダを管理するなら、地味に欲しいよね。
白米を食ってるときに欲しくなる沢庵くらいのポジションだよね。
そうだね、必須ではないけど欲しいくらいのものだね。
・・・って、本当に沢庵を作ってるんだね・・・。
すぐ必須ではないけど欲しいくらいのものだからね。
まあ、今回のツールはもう出来てるから、気にせず見ていこうぜ。
ツールの紹介
今回のツールは、下記のシートの赤線で囲まれた部分になります。
そして、「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());
}
}
おしまい
今回はこんなもんだな。
なるほどねえ、・・・ボリボリ
おい、もう食べてんのか!
まだ干し切れてすらいないじゃないか!
まあ、必須ではないけど欲しい時に食べちゃうよねえ~。
ただでさえ時間がかかるのに、いつになったらできるのやら・・・。
味なしで満足するなら、もう作らなくて良いのでは・・・。
おまけ
今回使ったシートの他の関数を紹介した記事は以下になります。よければ見てみて下さい!
以上になります!
コメント