👌

【Google App Script】フォルダ内の全てのファイル名をスプシに書き出すプログラム

2023/02/15に公開

概要

下記記事を参考とした。基本、同じプログラムなので、詳細知りたい方はこちらのリンクへ
https://moripro.net/gas-drive-get-filename/

書き込むシートを指定

下記内容で、ファイル名を書き込むシートを指定している。

  • 現在、activeとなっているスプシを選択
  • そのスプシの"シート1"を選ぶ
  • "シート1"で一列目を選ぶ
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  let row = 1;

既存の内容をクリア

A列に書き込みたいので、既にあるコンテンツを削除する。

 sheet.getRange(1,1,sheet.getMaxRows(),1).clearContent();

既存フォルダのファイルを取得

ファイル情報を書き出したいフォルダをIDで指定する。指定したら、上から順にファイル名を取得して、console.logでファイル名を出力する。

const files = DriveApp.getFolderById('1IkbiPWHTLsA8HI6dIMZK8K1KnWeqWah5').getFiles();
  
  while (files.hasNext()) {
    
    const file = files.next();
    const filename = file.getName();
    console.log(filename);

ファイル名を書き出す

取得したファイル名について、最初に設定した出力先のファイルに書き込む。row++とすることで、ファイルごとに次の行で書き込みを行うように設定できる。

    sheet.getRange(row, 1).setValue(filename);
    row++;

プログラム全体

function getFileList1_1() {
  
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('シート1');
  let row = 1;
  
  // A列の値をクリア
  sheet.getRange(1,1,sheet.getMaxRows(),1).clearContent();
  
  // 指定フォルダ内のファイルを一括取得(FileIteratorオブジェクト)
  const files = DriveApp.getFolderById('xxxxx').getFiles();
  
  while (files.hasNext()) {
    
    const file = files.next();
    const filename = file.getName();
    console.log(filename);
    
    // A列に書き込み
    sheet.getRange(row, 1).setValue(filename);
    row++;
  }
}

引用

https://moripro.net/gas-drive-get-filename/

Discussion