구글 스프레드시트로 2023년 다이어리 만들기-Apps Script 편
구글 스프레드시트로 다이어리 만들기
지난 포스팅을 통해 구글 스프레드시트로 다이어리를 만드는 방법에 대해 알아보았습니다.
먼저 데이터 입력 시트와 데이터를 기록하는 시트로 나누어 구성을 하였는데요.
다이어리 만들기의 기본이 되는 만큼 아래 링크를 먼저 확인해 주세요.
앱스 스크립트(Apps Script)를 활용하여 데이터 입력하기
구글 스프레드시트는 데이터를 입출력할 수 있는 기능을 제공하고 있습니다.
아쉽게도 모바일에서는 안되고 PC에서만 사용가능한 Apps Script라는 기능을 통해 가능한데요.
엑셀 VBA처럼 스크립트로 원하는 기능을 추가해 줄 수 있습니다.
지난번 포스팅을 통해 앱스 스크립트를 활용하여 데이터를 어떻게 입력할 수 있는지에 대해 간략하게 알아보았습니다.
다이어리에 데이터 입력하기 위한 스크립트 작성
앱스 스크립트에 대해 이해가 되었다면 이제 본격적으로 스크립트를 작성할 수 있습니다.
스크립트를 실행하는 방법은 몇 가지가 있지만 가장 보편적으로 사용하는 방법이 실행버튼을 만드는 건데요.
아래 링크를 클릭하셔서 실행버튼을 만드는 방법을 확인해 주세요.
이제 실행버튼을 만드셨다면 아래와 같이 스크립트를 작성한 후 function 이름을 버튼에 할당해 주시면 됩니다.
그럼 데이터를 입력하기 위한 스크립트는 아래와 같습니다.
// Save Data
function submitRegistrar() {
var SPREADSHEET_NAME = "data";
var SEARCH_COL_IDX = 0;
var RETURN_COL_IDX = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("DAILY"); //Form Sheet
var datasheet = ss.getSheetByName("data"); //Data Sheet
var str = formSS.getRange("C3").getValue();
var values = ss.getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
for (var i = 0; i < values.length; i++) {
var row = values[i];
if (row[SEARCH_COL_IDX] != str) {
var values1 = [[formSS.getRange("C3").getValue(),
formSS.getRange("C5").getValue(),
formSS.getRange("C6").getValue(),
formSS.getRange("C7").getValue(),
formSS.getRange("C8").getValue(),
formSS.getRange("C9").getValue(),
formSS.getRange("C10").getValue(),
formSS.getRange("C11").getValue(),
formSS.getRange("C12").getValue(),
formSS.getRange("C13").getValue(),
formSS.getRange("C14").getValue(),
formSS.getRange("C15").getValue(),
formSS.getRange("C16").getValue(),
formSS.getRange("C17").getValue(),
formSS.getRange("C18").getValue(),
formSS.getRange("C19").getValue(),
formSS.getRange("C20").getValue(),
formSS.getRange("C21").getValue(),
formSS.getRange("C22").getValue()]];
// Save New Data
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 19).setValues(values1);
SpreadsheetApp.getUi().alert(' "New Data Saved');
return row[RETURN_COL_IDX];
}
}
}
위 식을 그대로 복사하여 앱스 스크립트의 Code.gs에 붙어넣기 해줍니다.
그런 다음 스크립트를 저장한 후 스프레드시트로 돌아와서 function 이름인 submitRegistrar를 그대로 실행버튼에 할당해 줍니다.
할당하는 방법은 실행버튼 - 마우스 오른쪽 클릭하면 나오는 점 세게 클릭 - 스크립트할당 순으로 이동하여 function 이름을 붙여 넣기 해줍니다.
저는 REGISTER 버튼에 스크립트를 할당 하였고 권한설정을 해준 후 버튼을 실행하였습니다.
아래 사진과 같이 "New Data Save"라는 대화상자가 뜨면 잘 작동한 거예요.
확인을 눌러주면 끝입니다.
그다음 다시 내용을 등록해 줘야겠죠?
그러기 위해서는 셀의 내용을 지워줘야 하는데 일일이 지우기가 굉장히 번거롭습니다.
다음 시간에는 셀의 데이터를 한 번에 지워주는 스크립트에 대해 알아보도록 하겠습니다.
감사합니다.