Google Apps Script (GAS) でスクレイピング~マスタから気象庁データのあるエリアごとに新しくスプレッドシートを作る実験

PC

こんにちは。3カ月とかなり間が空きました が、とりあえず気象庁データのスクレイピング実験メモとして、データを取っている各地のシートを新しく作るところまでやっていきます。

前回の記事で、以下のようなデータを作っていました。

image

今回は、このシートのデータから新しいシートを作ります。

まずは最初の稚内のデータから行ってみましょう。

コードはこちら。


var folderID="********************************";//ファイルを作りたいフォルダ(google drive)

function createSS(){
var bookurl_masterbook = https://docs.google.com/spreadsheets/d/”**********************************指定のマスタがあるファイル
var masterbook = SpreadsheetApp.openByUrl(bookurl_masterbook);
var sheet_master = masterbook.getSheetByName("data_2");//前回を継承してdata_2にしましたが、他の名前にした場合は変えてください
var textArr = sheet_master.getRange(2,1,1,5).getValues();
var title=textArr[0][0]+"-"+textArr[0][3]+textArr[0][2]+"("+textArr[0][1]+":"+textArr[0][4]+")";
//新しくスプレッドシートを作成する:https://qiita.com/tanaike/items/8c82392ef2749892061c
var ss = Drive.Files.insert({
"title":    title,
"mimeType": "application/vnd.google-apps.spreadsheet",
"parents":  [{"id": folderID}]
});

var book_new = SpreadsheetApp.openById(ss.id);
//シート名をすべて取得 https://www.wmapst.net/google/gss/20161207-google-spreadsheet-sheet-name-get/
var names_booknew = wmap_getSheetsName2(book_new);
//シート名を変更 http://nevernoteit1419.blogspot.jp/2012/01/blog-post_2201.html
var sheet_data=book_new.getSheetByName(names_booknew[0]);
sheet_data.setName("data");
Logger.log(names_booknew);
SpreadsheetApp.setActiveSpreadsheet(book_new);

}

function wmap_getSheetsName2(book){
var sheets = book.getSheets();//ちょっとカスタマイズ
var sheet_names = new Array();

if (sheets.length >= 1) {
for(var i = 0;i < sheets.length; i++)
{
sheet_names.push(sheets[i].getName());
}
}
return sheet_names;
}

実行すると、稚内のスプレッドシートができ、中のシート名が「data」になります。

image

とりあえずここまで。今回はフォルダIDを指定してデータを作っています。ここをさらに複雑にすると、フォルダの中にもう一つ都道府県のフォルダを作って、その中に格納することなんかもできそうですね。

コメント