年末調整計算シート(5)
前回のつづき
国税庁の「年調ソフト」で作成したデータを国税庁の「年末調整計算シート」に取り込む処理をGASで作成しようと思っています。
前回は、指定したフォルダ内のxmlファイルを抽出する処理。
読み込んだファイルを変数textに代入し、
var fileBlob = file.getBlob();
var text = fileBlob.getDataAsString('utf-8');
抽出しやすいように、改行文字等を削除し、
var vtmpA = text.replace(/[\n\r\t]/g,"");
xmlファイルの基礎控除(例)の金額の部分(<xml006_D00010>***</xml006_D00010>)を抽出する処理は、次のとおりに、・・・
抽出した結果のvtmpの値は、「<xml006_D00010>480000</xml006_D00010>」
var vtmp=vtmpA.match(/(xml006_D00010)>.*?<\/\1/i);
「<xml006_D00010>」と「</xml006_D00010>」の部分は不要なので、replaceメソッドで削除、
if(vtmp!=null){
var kisokojo= vtmp.replace("xml006_D00010>","").replace("<\/xml006_D00010","");
}else{
var kisokojo=0;
}
抜き出したデータをスプシの該当セルに入力する作業は、
var ss=SpreadsheetApp.getActiveSpreadsheet();
var Setsheet=ss.getSheetByName('計算シート');
Setsheet.getRange("M27").setValue(kisokojo);
以上、整理すると、
function kisokojo_syori() {
var fld=DriveApp.getFolderById("12349abcs1234aCzws3cBNQb5R1FBTU0B");
var files=fld.getFiles();
while (files.hasNext()) {
var file = files.next(); var filename=file.getName();var fileid=file.getId();
if(filename.match(/kiso/)){
var fileBlob = file.getBlob();
var text = fileBlob.getDataAsString('utf-8');
var vtmpA = text.replace(/[\n\r\t]/g,"");
var vtmp=vtmpA.match(/(xml006_D00010)>.*?<\/\1/i);
if(vtmp!=null){
var kisokojo= vtmp[0].replace("xml006_D00010>","").replace("<\/xml006_D00010","");
}else{
var kisokojo=0;
}
var ss=SpreadsheetApp.getActiveSpreadsheet();
var Setsheet=ss.getSheetByName('計算シート');
Setsheet.getRange("M27").setValue(kisokojo);
}
}
}
その他の項目についても、同様に作成して完成。
スクリプトの動かし方は、別の記事等で記載しているので省略。
抽出の方法・・・もっとよい方法があると思うのですが、とりあえず動くので、・・・。