Google Apps Script(GAS)로 Google 양식을 제출할 때 데이터를 가져오는 방법 3가지

8795 단어 GoogleAppsScript

1. 개요



Google 폼의 답변을 취득해, Google Apps Script(GAS)로 데이터의 변환이나 slack 송신등을 할 수 있다.
그 때의 데이터의 취득 방법은 몇 가지가 있지만, 나 자신 GAS에 접하기 시작했을 무렵에 헤매었던 기억이 있기 때문에, 이 기사에 정리해 간다.

2. 다음 양식을 예로 한다.




이번에는 이름은? 라는 질문에 대한 답을 얻는다.

3-1. Google 양식의 스크립트 편집기에서 가져오기



Google 양식에는 스크립트 편집기가 존재한다.


3-1-1. 스크립트



스크립트 에디터에 쓰는 내용은 이하.

GAS
function myFunction(e) {
  const applicant = "";
  const itemResponse = e.response.getItemResponses();
  let name = "";

for (let i = 0; i < itemResponse.length; i++){    
    const formData = itemResponse[i];
    const title = formData.getItem().getTitle();
    const response = formData.getResponse();

    switch (title) {
      case "名前は?":
        name = response;
        break; 
       default:
        break;
    }
  }
  console.log(name);
}


3-1-2. 트리거



트리거는 다음과 같이 설정되었다.
실행할 함수: myFunction
이벤트: '폼에서' '폼 제출 시'

3-1-3.해설


console.log(name);에 의해, 로그로서 name가 출력되도록(듯이) 했다.
코알라라고 대답한 것이, 이하와 같이 출력되었으므로, 데이터를 취득할 수 있었다고 알 수 있다.

질문의 타이틀(이번의 경우는 「이름은?」)과, case "名前は?" 를 같게 하는 것이 간이다.case "名前は?":
name = response;
break;
를 복수 반복함으로써, 복수의 질문문의 대답을 각각 취득할 수 있다.



3-2. Google 양식에 연결한 스프레드시트에서 취득 ①



Google 설문지에 연결된 스프레드시트의 스크립트 편집기에 코드를 작성하기로 결정합니다.

이 스프레드 시트의 마크에서 날 수있는 곳입니다.
새로 만들어도 기존 시트를 이용해도 어느 쪽이라도 좋다.



3-2-1. 스크립트



스크립트 에디터에 쓰는 내용은 이하.

GAS
function myFunction(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const Sheet = ss.getSheetByName("フォームの回答 1");

  const lastRow = Sheet.getLastRow()
  const lastColumn = Sheet.getLastColumn()
  const data = Sheet.getRange(lastRow,1,1,lastColumn).getValues();
  const name = data[0][1];
  console.log(name);
}

3-2-2. 트리거



트리거는 다음과 같이 설정되었다.
실행할 함수: myFunction
이벤트: '스프레드시트에서' '양식 제출 시'

3-2-3.해설


console.log(name);에 의해, 로그로서 name가 출력되도록(듯이) 했다.
코알라 2라고 대답한 것이, 이하와 같이 출력되었으므로, 데이터를 취득할 수 있었다고 알 수 있다.
const ss = SpreadsheetApp.getActiveSpreadsheet();지금 붙어있는 스프레드 시트에서 데이터를 가져옵니다.const Sheet = ss.getSheetByName("フォームの回答 1");「폼의 대답 1」이라고 하는 이름의 시트를 Sheet라고 명명.const data = Sheet.getRange(lastRow,1,1,lastColumn).getValues();Sheet의 마지막 행을 일행, data라고 하는 2차원 배열에 넣는다.


3-3.Google 양식에 연결한 스프레드시트로부터 취득②



3-3-1. 스크립트



스크립트 에디터에 쓰는 내용은 이하.

GAS
function myFunction(e){
  const name = e.values[1];
  console.log(name);
}

3-3-2. 트리거



트리거는 다음과 같이 설정되었다.
실행할 함수: myFunction
이벤트: '스프레드시트에서' '양식 제출 시'

3-3-3.해설


console.log(name);에 의해, 로그로서 name가 출력되도록(듯이) 했다.
코알라 3과 답변한 것이 아래와 같이 출력되었으므로 데이터를 취득할 수 있었다는 것을 알 수 있다.
(e) 에서 양식 응답을 얻을 수 있습니다.const timestamp = e.values[0];그리고 타임 스탬프를 얻을 수 있습니다.



4. 정리



여러가지 방법이 그 밖에도 있다고 생각합니다만, 이상 3가지를 정리했습니다.
꼭 참고하세요! !

좋은 웹페이지 즐겨찾기