今回(第9回)はgoogleドライブ内のフォルダ内のすべてのスプレッドシート情報を取得する方法です。
取得した情報は二次元配列(filesInDriveArray変数)に入れておく。
第10回はfilesInDriveArray変数内のデータをキーにしてスプレッドシートを全て開く(アクティブにする)、ファイル内のセル情報を取得する方法
第11回はファイル内の情報をレシピ一覧に出力する方法
今回のシリーズでは妄想でラーメン屋のレシピを作って行こうと思っています。スプレッドシートの関数やgas(Google Apps Script)の勉強メモとして書いて行こうと思います。
やりたいこと
レシピ一覧があったら便利かなと思ってこの表にデータを入れることを目標にしていきたいと思います。
流れ
Googleドライブの指定フォルダ(らーめん妄想屋レシピフォルダ)内から情報を取得する
[マイドライブフォルダ>レシピ管理フォルダ>らぁめん妄想家フォルダ]に5個のスプレッドシートが入っているのでIdを取得して二次元配列に入れる
らぁめん妄想屋レシピ[01ラーメン]
らぁめん妄想屋レシピ[02おつまみ]
らぁめん妄想屋レシピ[03ご飯もの]
らぁめん妄想屋レシピ[20ドリンク]
らぁめん妄想屋レシピ[99半製品]
Idをキーにしてスプレッドシートを全て開く
for分で5個のスプレッドシートを開いていく
スプレッドシート内のシート情報を取得する
開いたスプレッドシートから全てのシートをアクティブにしてA1セルやC2セル内のデータを取得
二次元配列に入れる
シート内の情報を出力する
二次元配列をレシピ一覧に出力する。
Googleドライブの指定フォルダ(らーめん妄想屋レシピフォルダ)内から情報を取得する
function(関数名)はレシピリスト作成(recipeListCreation())という名前にしました。
function recipeListCreation() { /*--------------------------------------------------------------------------*/ // Googleドライブの指定フォルダ(らーめん妄想屋レシピフォルダ)内から情報を取得する /*--------------------------------------------------------------------------*/ // GoogleドライブのフォルダId(マイドライブ→レシピ管理→らーめん妄想屋レシピ) const folderId = 'XXXXXXXXXXXXXXXXXXXXXXXXXX←ここは変えてね'; // Googleドライブ内のフォルダ情報を保持しておく配列 const filesInDriveArray = []; // Googleドライブのフォルダ内のすべてのファイル情報を取得 const files = DriveApp.getFolderById(folderId).getFiles(); // ドライブ内のファイル配列(filesInDriveArray)にデータを入れる while(files.hasNext()) { var file = files.next(); filesInDriveArray.push([file.getName(),file.getId(),file.getUrl()]); } }
フォルダ情報が取得出来ているかテストしてみる
以下を追加してみてみよう
console.log(filesInDriveArray);
/*--------------------------------------------------------------------------*/
// ①Googleドライブの指定フォルダ(らーめん妄想屋レシピフォルダ)内から情報を取得する
/*--------------------------------------------------------------------------*/
// GoogleドライブのフォルダId(マイドライブ→レシピ管理→らーめん妄想屋レシピ)
const folderId = 'XXXXXXXXXXXXXXXXXXXXXXXXXX←ここは変えてね';
// Googleドライブ内のフォルダ情報を保持しておく配列
const filesInDriveArray = [];
// Googleドライブのフォルダ内のすべてのファイル情報を取得
const files = DriveApp.getFolderById(folderId).getFiles();
// ドライブ内のファイル配列(filesInDriveArray)にデータを入れる
while(files.hasNext()) {
var file = files.next();
filesInDriveArray.push([file.getName(),file.getId(),file.getUrl()]);
}
console.log(filesInDriveArray);
実行結果
[]を付けることで二次元配列になっていることが解った。
filesInDriveArray.push([file.getName(),file.getId(),file.getUrl()]);
filesInDriveArrayは以下のイメージで保持。XXXXXはそれぞれ違う文字列になる
A | B | C | |
1 | らぁめん妄想屋レシピ[02おつまみ] | XXXXX | https://docs.google.com/spreadsheets/d/XXXXX/edit?usp=drivesdk |
2 | らぁめん妄想屋レシピ[99半製品] | XXXXX | https://docs.google.com/spreadsheets/d/XXXXX/edit?usp=drivesdk |
3 | らぁめん妄想屋レシピ[20ドリンク] | XXXXX | https://docs.google.com/spreadsheets/d/XXXXX/edit?usp=drivesdk |
4 | 以下略 |
次回
今回取得したフォルダ内データ(filesInDriveArray)をキーにしてスプレッドシート内(レシピ)の情報を取得する
コメント