-
投稿
kkkokumura 2019年10月16日
勤怠実績の抽出と整形について
初心者な質問で申し訳ありません。
人事労務に於いて、APIを使って勤怠実績をgoogleスプレッドシートに展開しようとしています。■整形について
勤怠実績の抽出を行った際、例えば出勤時間(clock_in_at)は「2019-06-01T09:00:00.000+09:00」と
いったカタチで抽出されます。
これを日付部分は無視して「9:00」といった感じで整形したいのですが、可能でしょうか。■null値の取り扱いについて
同じく勤怠実績を抽出した際、打刻実績がなかった場合、「null」ということでエラーが表示されます
これを回避する方法ありますでしょうか。下記サンプルです。
//勤怠実績を取得
var spsheet = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得
var sheet = spsheet.getActiveSheet(); //アクティブなスプレッドシートのアクティブシートを取得
var data = UrlFetchApp.fetch( requestUrl , options ); //勤怠実績の取得
var kintai = JSON.parse( data .getContentText()); //取得した実績をJSON形式で格納//取得したデータをシートに反映
var range = sheet.getRange(“A2:J44000”);
range.clear(); //シート情報のクリア//勤怠実績の取得
for(var i=0; i<=31; i++) {
sheet.getRange( 2+i, 1 ).setValue( kintai[“work_records”][i][“date”] ); //年月日
sheet.getRange( 2+i, 2 ).setValue( kintai[“work_records”][i][“clock_in_at”] ); //出勤時間
sheet.getRange( 2+i, 3 ).setValue( kintai[“work_records”][i][“clock_out_at”] ); //退勤時間
sheet.getRange( 2+i, 4 ).setValue( kintai[“work_records”][i][“break_records”][0][“clock_in_at”] ); //休憩開始時間
sheet.getRange( 2+i, 5 ).setValue( kintai[“work_records”][i][“break_records”][0][“clock_out_at”] ); //休憩終了時間
sheet.getRange( 2+i, 6 ).setValue( kintai[“work_records”][i][“total_overtime_work_mins”] ); //時間外勤務時間(分)
sheet.getRange( 2+i, 7 ).setValue( kintai[“work_records”][i][“total_latenight_work_mins”] ); //深夜勤務時間(分)
sheet.getRange( 2+i, 8 ).setValue( kintai[“work_records”][i][“paid_holiday”] ); //有給取得
}- 回答するにはログインが必要です。
回答
yakumo 2019年10月18日
GAS を利用している感じでしょうか?
> 整形について
https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date,String,String)
こちら利用すれば出来ると思います。※ SinpleDateFormat: https://docs.oracle.com/javase/jp/8/docs/api/java/text/SimpleDateFormat.html
ex)
var dateStr = “2019-06-01T09:15:00.000+09:00”;
var date = new Date(dateStr);
var dispDateStr = Utilities.formatDate(date, “JST”, “H:mm”);> null に関して
null がでてしまうのは kintai のどこかでしょうか?
詳細わかりませんが、javascript の連想配列とnull の取り扱いを調べてみて下さい。連想配列: https://www.sejuku.net/blog/27965
null の扱い: https://qiita.com/phi/items/723aa59851b0716a87e3
Community
コミュニティをご利用の際は 【ガイドライン】を確認・同意いただいた上でご利用ください。