見出し画像

GAS|ファイル名からスプレッドシートを取得する|openById|SpreadsheetApp|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日配信しています。

この「コミックス販売日情報」は、スプレッドシートで作ったものです。

Google ドライブ内に保存しているスプレッドシートを、「ファイル名」を指定して取得するには、以下のようにします。

/**
 * Opens the spreadsheet with the given name.
 * 
 * @param name — the name of the files to find
 * @return Spreadsheet — the Spreadsheet object
 */
function openSpreadsheetByName(name) {
  // get a collection of all files
  var files = DriveApp.getRootFolder().getFilesByName(name);
  
  // get file
  var file = files.next();
  
  // open spreadsheet
  return SpreadsheetApp.openById(file.getId());
}

Google ドライブは同名ファイルの存在を許容しますが、上記では重複するファイルの判定(及び存在確認)は省いています。

また、上記では Google ドライブのルートフォルダ(マイドライブ)から取得しています。もし、指定のフォルダから取得したいのであれば、以下のようにします。

/**
 * Opens the spreadsheet with the given name.
 * 
 * @param id — the ID of the folder
 * @param name — the name of the files to find
 * @return Spreadsheet — the Spreadsheet object
 */
function openSpreadsheetByName(id, name) {
  // get a collection of all files
  var files = DriveApp.getFolderById(id).getFilesByName(name);
  
  // get file
  var file = files.next();
  
  // open spreadsheet
  return SpreadsheetApp.openById(file.getId());
}

「id — the ID of the folder」は、「フォルダ ID」を示しています。ブラウザで Google ドライブを閲覧したときの URL は「https://drive.google.com/drive/folders/1XxxxXXX2XxxxxxxX3X0XxXxXxXXxx4x7」このようになっていますが、末尾の「1XxxxXXX2XxxxxxxX3X0XxXxXxXXxx4x7」が「フォルダ ID」に該当します。

// Gets the folder with the given ID.
DriveApp.getFolderById('1XxxxXXX2XxxxxxxX3X0XxXxXxXXxx4x7');

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

アムロがガンダムを起動させ、シャアとの壮絶な闘いを繰り広げる。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?