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 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!
コーヒーブレイク
アムロがガンダムを起動させ、シャアとの壮絶な闘いを繰り広げる。