Skip to the content.

← go back to the list

Google Sheets에 저장된 데이터를 javascript로 받아오기

Introduction

방법

  1. Google Sheets를 누구나 볼 수 있도록 public으로 공유한다. 보기전용으로 공유하고 수정권한은 주지 않아도 된다.

  2. 상단의 File > Publish to the web 메뉴를 선택한다. 첫 번째 옵션에서 “Entire Document” 혹은 특정 Sheet를 선택하고, 두 번째 옵션에서 “Web page”를 선택한 후 publish한다. (생성되는 link는 중요하지 않으니 창을 닫는다.)

  3. 창을 닫고 원 Google Sheets로 돌아와서, 상단 주소창에 보면 주소명이 https://docs.google.com/spreadsheets/d/주소값/... 이렇게 되어 있다. 그 주소값이 필요하므로 복사해둔다.
  4. 이제는 javascript를 이용하여 JSON을 받아오기만 하면 된다. Public data를 받아오는 형식으로 API를 이용하기 위한 key값은 불필요하다. (데이터를 string으로 받기 때문에 숫자로 변환하려면 parseInt 함수를 쓰면 된다.

  5. Demo는 weather.html 참조
     <html>
     <head>
     </head>
     <body>
         <div id='dust'></div>
     </body>
     <script>
         // script는 body가 끝나고 들어감
         const onDataLoaded = (data) => {
             // Google Sheets의 E3 cell에 저장된 미세먼지 data를 받아와서 dust라는 div에 집어넣는 예
             const dataE3 = data.feed.entry.find((entry) => entry.title.$t == 'E3').content.$t
             if (parseInt(dataE3) == 0) {
                 document.getElementById('dust').innerHTML = "현재 미세먼지 없음"
             }
             else {
                 document.getElementById('dust').innerHTML = "현재 미세먼지 수치: " +dataE3
             }
         }
     </script>
     <!--아래와 같이 <script>를 불러줘야 위 code가 제대로 작동함-->
     <script src="https://spreadsheets.google.com/feeds/cells/1fImbr5ovXR07P7NxYKqU6FsYKsHHaonZV9PmDnjt_T8/2/public/basic?alt=json-in-script&callback=onDataLoaded"></script>
     </html>
    




← go back to the list