LANG SELRCT

コードを書く場所についてはこちら

2016年5月25日水曜日

Googleドライブの特定のフォルダ内のファイル一覧とプレビューのリンクをシートに書き出す

Googleドライブにあるファイルのプレビューを開きたい時、下記のようにするとリンクから一発で開けました。最初は画像をプレビューするリンクを探していましたが、シートもプレビューできるようです。
https://drive.google.com/file/d/ファイルのID/view

ドライブの中のフォルダの中にいくつかファイルがある場合、そのファイル一覧を取得して、プレビューのリンクをシートに書き出すというのをやってみました。

1. フォルダIDを取得する
2. フォルダの中のファイルを取得する
3. ファイル名、IDを取得する
4. シートのA列にファイル名、B列にID、C列にプレビューのリンクを書き出す
5. D列にMimeType, E列に作成日, F列に更新日も書き出してみる

コード.gs
function myFunction() {
  var names= [];
  var ids = [];
  var types = [];
  var createds = [];
  var updateds = [];
  var folder = DriveApp.getFolderById("FOLDER_ID");
  var contents = folder.getFiles();
  while(contents.hasNext()) {
    file = contents.next();
    name = file.getName();
    id = file.getId();
    type = file.getMimeType();
    created = file.getDateCreated();
    updated = file.getLastUpdated();
    types.push(type);
    createds.push(created);
    updateds.push(updated);
    names.push(name);
    ids.push(id);
  }
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var row = 1;
  var view_path = "https://drive.google.com/file/d/";
  for(var i = 0; i < ids.length; i++){
    sh.getRange(row, 1).setValue(names[i]);
    sh.getRange(row, 2).setValue(ids[i]);
    sh.getRange(row, 3).setValue(view_path + ids[i] + "/view");
    sh.getRange(row, 4).setValue(types[i]);
    sh.getRange(row, 5).setValue(createds[i]);
    sh.getRange(row, 6).setValue(updateds[i]);
    row++;
  }
}