おじゃの気温確認
ソースコード
function CodeForFresh() {
var bookurl_work = "https://docs.google.com/spreadsheets/d/***";
var book_work = SpreadsheetApp.openByUrl(bookurl_work);
var sheet4 = book_work.getSheetByName("data");
var data = sheet4.getDataRange().getValues();
var length = data.length;
//現在日付の年と月を取得
var this_date = new Date();
//var this_date2 = Date(this_date.setHours(this_date.getHours() + 9));
var this_year = this_date.getFullYear();
var this_month = ("00" + (this_date.getMonth()+1)).slice(-2);
//A列のすべての値に対して実行
for (var i = length-1 ; i >= 2 ; i--){
var keyword = data[i][0];
var keyword2 = Date(keyword.setHours(keyword.getHours() + 9));
//本日日付と年が一致するかつ月が一致するとき、その行を削除
var keyword3 = keyword.getFullYear() ;
var keyword4 =("00" + (keyword.getMonth()+1)).slice(-2)
if(keyword3 == this_year && keyword4 == this_month){
sheet4.deleteRow(i+1);
}
}
}
function getData_meteologicalAg() {
//変数宣言(スプレッドシート側) masterが取得したいデータを記載したマスタ、dataが取得したいデータを取っていくデータシート。
var bookurl_work = "https://docs.google.com/spreadsheets/d/***";
var book_work = SpreadsheetApp.openByUrl(bookurl_work);
var sheet_data = book_work.getSheetByName("data");
var sheet_master = book_work.getSheetByName("master");
var data_startRow = sheet_data.getLastRow()+1;
//変数宣言(HTML取得関係)
var opt = {"contentType":"text/html;","method":"get"};
var data_html = "";
var content_html ="";
var postText = "";
var url_gethtml = "http://www.data.jma.go.jp/obd/stats/etrn/view/daily_a1.php?prec_no=";
var url_par_pref = sheet_master.getRange(2,5).getValue();//都道府県コード
var url_par_block = sheet_master.getRange(2,3).getValue();//ブロックコード
var url_par_prefName = sheet_master.getRange(2,6).getValue();//都道府県
var url_par_blockName = sheet_master.getRange(2,4).getValue();//ブロック
var url_par_year = sheet_master.getRange(2,1).getValue();
var url_par_month = sheet_master.getRange(2,2).getValue();
var standardDate = sheet_master.getRange(2,7).getValue();//日付入力
url_gethtml = url_gethtml + url_par_pref + "&block_no=" + url_par_block + "&year=" + url_par_year + "&month="+ url_par_month + "&day=&view=";
//変数宣言(分割処理と書き込み関係)
var Middle_Arr=[];
var table_Arr = [];
var rows =2 + sheet_master.getRange(2,10).getValue();
var data_endRow = table_Arr.length;
var cols = 17;
var masterdate;
var masterblock;
var date_sabun;
var nextDate = sheet_master.getRange(2,9).getValue();//次のスクリプト動作のため
//繰り返し開始箇所
//html取得・整形
data_html = UrlFetchApp.fetch(url_gethtml ,opt);
content_html = data_html.getContentText();
postText = getStringSlice(content_html, "<table id='tablefix1' class='data2_s'>",'<div class="print" style="margin-top:1em">');
postText = postText.replace(/<\/th>/g, '</th>,');
postText = postText.replace(/<\/td>/g, '</td>,');//
postText = postText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/g,'');
postText = postText.replace( /\r\n/g , "\n" ); //IE対策 改行コード\r\nを\rに変換
postText = postText.replace( /^(\n+)|(\n+)$/g , "" ); //文頭と文末の余計な改行を除去
postText = postText.replace(/\/\/\//g, '');
Middle_Arr = postText.split( /\n/g );
table_Arr = [];
for( var i = 0 , l = Middle_Arr.length ; i < l ; i++ ){
table_Arr[i] = Middle_Arr[i].split(",");
for( var j = 0 , m = table_Arr[i].length ; j < m ; j++ ){//trimも同時に行っておく
table_Arr[i][j] = table_Arr[i][j].replace( /(^\s+)|(\s+$)/g , "" );
}
}
table_Arr.splice(0,3);
data_endRow = table_Arr.length;
sheet_data.getRange(data_startRow,1,data_endRow,cols).setValues(table_Arr);//data_startRow+rows
masterdate = sheet_master.getRange(4,1,data_endRow,1).getValues();
masterblock = sheet_master.getRange(4,3,data_endRow,5).getValues();
date_sabun = sheet_data.getRange(data_startRow,20,data_endRow,1);
sheet_data.getRange(data_startRow,1,data_endRow,1).setValues(masterdate);
sheet_data.getRange(data_startRow,15,data_endRow,5).setValues(masterblock);
sheet_master.getRange(4,8).copyTo(date_sabun);
sheet_master.getRange(2,8).setValue(nextDate);
}
function getStringSlice(content, startStr, endStr){
var indexStart = content.indexOf(startStr);
if(indexStart == -1){
return "";
} else {
indexStart += startStr.length
return content.slice(indexStart, content.indexOf(endStr, indexStart));
}
}
//ループ処理で条件に一致する行を削除または置換する
function CodeForDeleteRowCompleteLoop() {
var sheet = SpreadsheetApp.getActiveSheet();
var sheet_data = book_work.getSheetByName("data");
var data = sheet_data.getDataRange().getValues();
var length = data.length;
for (var i = length - 1; i >= 1 ; i--){
var keyword = data[i][2];
var ref = sheet_data.getRange(i, 6).getValue();
var ref2 = sheet_data.getRange(i, 7).getValue();
var str = ref.toString().replace(' ]', '');
var str2 = ref2.toString().replace(' ]', '');
sheet_data.getRange(i, 6).setValue(str);
sheet_data.getRange(i, 7).setValue(str2);
if(keyword === ""){
sheet_data.deleteRow(i + 1);
}
}
}
function CodeForDateCompare() {
var bookurl_work = "https://docs.google.com/spreadsheets/d/***";
var book_work = SpreadsheetApp.openByUrl(bookurl_work);
var sheet2 = book_work.getSheetByName("data");
var data = sheet2.getDataRange().getValues();
var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
var length = data.length;
//不要な日付データのみ削除する
for (var i = length - 1; i >= 2 ; i--){
var keyword = data[i][0];
var keyword2 = new Date(keyword);
if(keyword2.getTime() > yesterday.getTime()) {
sheet2.deleteRow(i + 1);
}
}
}
function PasteTheCopiedValue() {
var bookurl_work = "https://docs.google.com/spreadsheets/d/***";
var book_work = SpreadsheetApp.openByUrl(bookurl_work);
var sheet3 = book_work.getSheetByName("data");
var sheet_combine = book_work.getSheetByName("combine");
var copyRange = sheet3.getRange("F:G");
//最新の気温データを取得する
var destination_Cell = sheet_combine.getRange("H:I");
//最新の気温データを貼付け
copyRange.copyTo(destination_Cell, {contentsOnly:true});
}
参考:noowi さん