おじゃの部屋

まろは、諸行無常を感じるおじゃ!

おじゃの気温確認

おじゃの気温確認

ソースコード

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 さん