【GAS】②스프레드시트→html에 건네준 값을 테이블 형식으로(jquery)

결론 · 최종 완성 · 대상 등
스프레드시트 ⇆html 양방향 값 전달 CRUD(추가 갱신·삭제) 처리(GAS, javascript, jquery만)

지난번
【GAS】①스프레드시트→html에 값 전달(로드, 템플리 로드시)

다음 번
【GAS】③web페이지에서 테이블의 행 삭제→스프레드시트도 같은 행 삭제

◆ 이번에 할 일



마지막으로 스푸시에서 html로 데이터를 전달하여 표시했습니다.

● 스푸시


● 웹 페이지


이번에는, 웹 페이지에 출력한 데이터를,
table에 차례로 넣습니다.

◆ 실제 코드



GAS 값 취득, html 출력



이전과 거의 같습니다.
이전과의 차이: shift로 헤더를 삭제하고 있습니다.
       반복시에 th만의 처리를 넣는 것이 귀찮기 때문에,,,

코드.gs


function doGet(){
  let hotpt = HtmlService.createTemplateFromFile('index').evaluate();
  hotpt.setTitle('CRUDテスト');
  return hotpt;
}

function valsget() {
  let ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("テスト");
  let vals = ss.getDataRange().getValues();
  vals.shift(); //ここを前回から追加
  return vals;
}


HTML로 값을 받아 테이블에 넣습니다.



index.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>  
    <table id="tbl"><!--前もってthだけ作っておきます。-->
      <tr>
        <th>地域</th>
        <th>都道府県</th>
     <th>県庁所在地</th>
      </tr>
    </table>
  </body>
</html>

<!--jQueryのCDN読み込み-->
<script
  src="https://code.jquery.com/jquery-3.6.0.slim.min.js"
  integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI="
  crossorigin="anonymous"></script>


<!--以下、クライアント側javascript-->

<script>

  window.onload = function(){

    google.script.run.withSuccessHandler(function(dt){ //dtにvalgetの取得値を渡す
      for(let i =0;i<dt.length;i++){    //dtの配列の数だけ繰り返し
        let $tr = $('<tr></tr>');        //jqueryオブジェクトでtr作成
        $tr.append($('<td></td>').text(dt[i][0])); //trにtdを追加していく
        $tr.append($('<td></td>').text(dt[i][1])); 
        $tr.append($('<td></td>').text(dt[i][2])); 

        $('#tbl').append($tr);   //出来上がったtrをtableに行追加       
      }     
    }).valsget();
  }

</script>


◆ 결과 웹 페이지



테이블 형식으로 표시되었습니다.

좋은 웹페이지 즐겨찾기