年末調整計算シート(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);
    }
  }
}

 その他の項目についても、同様に作成して完成。
 スクリプトの動かし方は、別の記事等で記載しているので省略。

 抽出の方法・・・もっとよい方法があると思うのですが、とりあえず動くので、・・・。

この記事が気に入ったらサポートをしてみませんか?