Apps Script를 활용해 스프레드 시트로 데이터 전송하기

반응형

우리가 입력하는 데이터를 구글 스프레드 시트에 저장되게 하려면 어떻게 해야할까요?

기본적으로 구글 설문지 폼을 사용하면 스프레드 시트에 저장되는 것을 확인할 수 있습니다.

이걸 내가 원하는 대로 할 수는 없을까요?

 

일반적으로 생각했을 때 2개의 서식이 필요하단 사실은 떠올릴 수 있을 것입니다.

첫번째로 데이터를 입력하는 서식이며, 이는 웹 화면을 통해 보여질 것입니다.

구글 스프레드시트의 Apps Script에서는 기본값으로 index.html을 설정해두고 있습니다.

두번째로 입력된 데이터가 스프레드 시트에 차곡차곡 쌓여야할 것입니다. 

이를 위한 스프레드 시트 파일(SpreadSheet)이 필요합니다.

 

그런데 하나가 더 필요합니다. 

이 두 파일을 연결할 연결고리, 그것이 Apps Script 입니다.

Code.gs가 바로 그것입니다.

 

자, 정리하자면, 데이터입력을 담당하는 index.html, 데이터를 받아서 저장할 SpreadSheet, 마지막으로 이 둘을 연결하는 Code.gs가 필요합니다.

 

이때 필요한 가장 기본적인 코드를 정리해보겠습니다.

 

  1. index.html

 

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">


    <!-- 아래 스크립트를 통해 구글 스프레드 시트에 저장하게 됩니다. -->
    <script>
      function onSuccess(){
        alert("저장완료");
      }


      function resister() {
        let inputEl = document.getElementsByTagName("input");
        let inputData = [];
        for(element of inputEl) {
          inputData.push(element.value);
        }


        google.script.run.withSuccessHandler(onSuccess).sendUserData(inputData);
      }
    </script>
    <!-- 여기까지 -->
  </head>


  <body>
    <p>데이터 입력</p>
    <!-- 아래 input 태그를 통해 데이터가 입력되며, resister()를 통해 등록됩니다. -->
    <label>종류</label>
    <input type="text" name="type"><br>


    <label>수량</label>
    <input type="number" name="number"><br>


    <label>유효기간</label>
    <input type="date" name="deadline"><br>


    <button onclick="resister()">등록</button>
    <!-- 여기까지. 위에 input은 더 많이 추가해도 됩니다. -->
  </body>
 
</html>



  1. Code.gs
  • index.html과 소통하기 위해 필요한 함수
function doGet() {
  return HtmlService.createHtmlOutputFromFile('index');
}

 

  • 아래 3개 중 필요에 따라 선택
function sendUserData(inputData) {
  let ss = SpreadsheetApp.getActiveSheet();
  ss.appendRow(inputData);
}
▲ 구글 스프레드 시트에서 바로 App Script를 만든 경우로 시트가 하나 뿐인 경우.
  별도의 지정없이 바로 작동합니다.
function sendUserData(inputData) {
  let sheetName = '시트1'; // 시트 이름을 변수로 선언
  let ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  ss.appendRow(inputData);
}
▲ 시트가 여러개인 경우 시트명을 변수로 지정토록 하였습니다.
  ’시트1’을 수정하세요.
function sendUserData(inputData) {
  // 스프레드시트 파일 ID 및 시트 이름 설정
  const spreadsheetId = 'YOUR_SPREADSHEET_ID'; // 여기에 스프레드시트 파일 ID를 입력
  const sheetName = '시트1';


  // 스프레드시트 및 시트 가져오기
  const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  const sheet = spreadsheet.getSheetByName(sheetName);


  // 데이터 추가
  sheet.appendRow(inputData);
}
▲ 파일명(고유ID)와 시트명을 모두 변수로 설정합니다.
  ’YOUR_SPREADSHEET_ID’에 스프레드 시트 파일의 ID를 직접 입력합니다.
  ’시트1’에 시트명을 직접 입력합니다.



여기까지가 기본적인 처리방법입니다.

index.html을 수정함으로써 입력화면을 좀더 다양하게 꾸밀 수 있으며, 스프레드 시트로 보낼 데이터도 추가할 수 있을 것입니다.



반응형

구글 스프레드 시트로 데이터 분석하기

반응형

구글 스프레드 시트를 이용해 데이터를 분석할 수 있도록 만들어 보았습니다.

 

2024.05.27 - [[楞嚴] 생각 나누기/[平] 사회조사와 데이터분석] - Excel로 통계분석하기 #3

 

Excel로 통계분석하기 #3

Excel(엑셀)은 데이터 분석을 위해, 추가기능을 통해 분석도구를 제공하고 있다.2021.11.07 - [[정보] 복지 이야기/[福] 복지 배우기] - Excel로 통계분석하기 #1 Excel로 통계분석하기 #1굳이 비싼 통계 프

welfareact.net

이전에도 엑셀로 통계분석하는 파일을 만들기도 하였지만, 해당 파일은 결측값이 있는 경우에 대한 반영이 정확히 되어 있지 않습니다.

 

이번 버전에서는 결측값에 대한 처리를 SPSS의 결과 값과 비교하면서 보완을 해보았습니다.

 

https://docs.google.com/spreadsheets/d/1bvD_d5KbLt4yeyXHhg6FfbowdwjgjQHWTroWbvNYyag/edit?usp=sharing

 

데이터 분석

목차 구글 스프레드 시트로 데이터 분석하기 by,정수홍, jshever@hanmail.net <a href="http://welfareact.net/">https://welfareact.net</a> update 2024. 7. 27. 목차,DATA set,활용 <a href="#gid=1653135853">영가설 기각의 의미</a>,<a

docs.google.com

 

현재 모수검정 중 구현이 가능한 부분은 완료한 상태이며,

추가로 비모수검정인 순위상관분석과 카이제곱검정은 어떻게 하면 좋을지 검토 중에 있습니다.

추가로 비모수 검정인 순위상관분석과 카이제곱검정을 추가하였습니다.(2024. 9. 1)

 

혹시 오류가 있다면 알려주시면 반영해보겠습니다.

이 문서의 활용은 Data Set에 분석할 데이터를 입력하시면 됩니다.

직접 수식을 수정해보시려면 "사본 만들기"를 하셔 테스트해보세요~

반응형

사회복지, 인권적 상상력 더하기

반응형

지난 6월 20일, 국가인권위원회 부산인권센터에서 의뢰받아 사회복지시설장 대상 인권교육의 한꼭지를 담당하였다.

주제는 거창하게도 "사회복지, 인권적 상상력 더하기"

많은 고민 끝에 내어놓은 내 결론이다.

 

2024-0620 사회복지, 인권적 상상력 더하기.pdf
3.24MB

반응형

소모품 구매 및 물품 계약구매(수의계약)에 따른 징구서류 검토

반응형

2024.06.25 - [[정보] 복지 이야기/[法] 복지관련 법령] - 사회복지시설에서의 구매거래에 따른 지출 방법 정리

 

수의계약에 대해서는 「지방자치단체를 당사자로 하는 계약에 관한 법률」과 이에 따른 「지방자치단체 입찰 및 계약집행기준」을 통해 확인할 수 있다. 
이때 1천원짜리 볼펜 한 자루를 구입하는 것도 수의계약에 의한 구매를 하고, 필요한 서류를 모두 징구해야만 하는 것일까?

우선 확인해야하는 용어는 “물품”과 “소모품”이다. 
「사회복지법인 및 사회복지시설 재무·회계규칙」 제38조 및 제40조의2에 따르면, 물품이란 자산가치가 있는 것으로 우리가 흔히 얘기하는 비품으로 관리가 필요한 것을 말한다. 한편 사무용품 등 업무에 사용하는 물건 등은 “소모품”이라고 말한다.
지방계약법에서 계약을 통해 구매해야하는 물품이라는 것은 바로 이 자산가치가 있는 비품에 해당하는 것이라 보아야 할 것이다.

이를 전제하고 일반적인 수의계약에 따르는 물품 구매 금액기준과 징구서류를 확인해보면 다음과 같다.

지출증빙


위 표에서 확인할 수 있듯이, 200만원 이하의 소모품 또는 물품(비품)을 신용카드로 구입시 필요한 서류는 지출결의서, 품의요구서, 카드매출전표, 1인 견적서(카탈로그, 상품소개서)로 끝난다. 하지만 현금으로 구입하려면 산출기초조사서를 비롯해 많은 서류가 더 필요하며, 물품이라면 수의계약에 따른 청렴서약서, 각서 등을 추가로 받아야만 한다. 

 

보다 자세한 내용은 첨부파일을 확인하자.

 

2024-0624 소모품 구매 및 물품 계약구매(수의계약)에 따른 징구서류 검토.hwp
0.42MB

 

 

※ update 2024. 6. 24.

관련 세부 근거 등을 각주로 추가하였습니다.

반응형

다중응답에 대한 카이제곱(χ²) 검정 방법 by SPSS

반응형

SPSS 다중반응 변수를 처리하다보면 두 가지 불편한 점을 만나게 된다.

하나는 다중반응에 대한 변수군을 정의한 것은 저장되지 않는다는 사실이다. 따라서 컴퓨터를 껐다가 새로 켜서 분석을 하려하면 그때마다 매번 변수군을 새로 정의해야만 한다.

다른 하나는 다중반응에 대해 교차분석을 하면 교차표만 제공해줄 뿐 카이제곱검정 등 검정통계량을 알려주지는 않는다.

 

이 두 가지는 생각보다 불편하다. 

이와 관련하여 두번째는 다음과 같은 절차를 통해서 확인할 수 있다.

분석  >  표  >  다중응답변수군  >  다중응답변수군 정의

 

1. 다중반응 변수군을 정의한다.

다중반응 변수군 정의

 

2. 사용자 정의 표를 통해 분석할 변수를 입력한다.

분석  >  표  >  다중응답변수군  >  사용자 정의 표

- 이때 독립변수를 행(W)에, 종속변수를 열(O)에 마우스를 이용해 끌어다 놓는다.

 

3. 검정통계량 탭에서 옵션을 선택한다.

검정통계량

- 여기서 [□ 독립성 검정(카이제곱)(T)]을 체크해준다.

 

4. 결과를 확인한다.

다중반응에 대한 카이제곱검정 결과

- 위 결과에서 보듯이, 성별에 따른 노인일자라시압 참여이유에 대한 검정결과 χ²=125.399(p<.01)로 나타난 것을 확인할 수 있다.

 

다중반응 카이제곱.pdf
0.28MB

 

 

반응형