구글 스프레드시트에 진심이다보면 지금 정리한 이 데이터가 고대로~ 받아야 하는 사람의 이메일이나 시트에 배달 되었으면 하는 바람이 생기게 됩니다. 많은 실무자들이 오늘도 ‘아 더 편한 방법은 없을까’ 하는 정산 시스템 제작.
지금 시작합니다.
서로 다른 스프레드 시트 연결하기
먼저 스프레드시트에 데이터가 잘~ 정리가 되어 있으셔야 합니다. 먼저 어려운걸 만들기 전에 쉬운 것부터 해보도록 하겠습니다.
- 다른 스프레드시트의 링크를 준비합니다.
요런 형태의 링크 주소일텐데요 /d/ 뒤는 시트 ID라는걸 꼭 기억해둡시다.
/spreadsheets/d/1tFZpedAbUFxBTxYCaoVjg/edit#gid=402423996 - 함수 하나를 사용할겁니다.
Importrange(“시트 링크”,”데이터 영역”) - 데이터는 ‘시트’를 중심으로 굴러 갑니다. 기억하기 쉽게 시트 1행 1열 A1에 있는 데이터로 해봅시다.
자 한번 따라해볼게요~!
저는 C2 셀에 링크를 넣어서 ‘시트1’!A1 이렇게 사용했습니다.
=IMPORTRANGE(링크,”‘시트1’!A1″)
이렇게 링크 연결한 뒤에 #REF 라는 표시가 뜰 수도 있는데 당황하지말고 눌러 보시고 ‘승인’만 해주시면 충분히 데이터를 불러오실 수 있습니다.
자 이제 더 ‘많은 데이터’를 불러와 볼까요?
테이블 크기를 키워봅시다. 5행 5열 5X5정도 크기라면?
‘시트1’!A1:D5 이런식으로 해주시면 되겠죠?
이번엔 좀 더 어려운 ‘시트’ 자체의 기능으로 진행 해봅니다.
Apps Script를 활용하면 복잡한 기능도 OK.
스프레드 시트는 ‘자바스크립트’를 활용해서 다양한 기능을 시도해 볼 수 있는데요.
코드 파일 스크립트가 좋은 이유가 바로~
“필요한 소스 찾기 매우~ 쉬움.”
먼저 상단 메뉴 파일 | 수정 | 보기 | 삽입 | 서식 | 데이터 | 도구 | 확장프로그램 | 도움말 중에서
‘확장프로그램’ > Apps Script를 선택해서 실행합니다.
//첫번째 시트의[현재 시트] 시트 ID를 넣어주세요. (전체 링크에서 /d/ 뒤에 있는 ID)
var sheetId = '';
var sheet = SpreadsheetApp.openById(sheetId).getSheetByName("시트1");
//두 번째 시트의 시트 ID를 넣어주세요. (전체 링크에서 /d/ 뒤에 있는 ID)
var sheetId2 = '';
var data = SpreadsheetApp.openById(sheetId2).getSheetByName("시트1");
function AddRecord() {
const sample1 = sheet.getRange("A1:D5").getValues();
data.clear({contentsOnly:true});
for (let i=0; i< sample1.length; i++) {
data.appendRow(sample1[i]);
}
}
function databaseAsObjectArray() {
const [headers, ...data] = sheet.getDataRange().getValues();
const databaseAsObjectArray = data.map(row => {
return row.reduce((acc, value, i) => {
const key = headers[i];
if (key === '') return acc;
return { ...acc, [key]: value };
}, {});
});
}
시트의 A1:D5에 있는 데이터를 다른 시트로 추가하는 Script 입니다. Apps Script파일 안에 쫙 복사해서 붙여넣기 해줍시다.
붙여넣기 해주시면서
Code.gs 파일에서 Ctrl+S 혹은 Cmd+S 로 저장한 뒤 AddRecord ‘실행’ 버튼을 눌러서 실행해줍니다.
참 앱스크립트는 파일 실행할 때 최초 권한 획득이 필요합니다.
앱스크립트 최초 권한 획득 방법
요 화면인데요. 권한 검토를 누르고 나면
구글 계정 선택화면이 나오는데 눌러 주셔야 합니다.
이제 많이들 기피하시는 부분입니다. 여기서 안전한 환경으로 돌아가시는 분들이 너~무 많아서…….
‘고급’을 누르시고
해당 프로젝트로 이동을 선택해주세요.
이렇게 해서 ‘허용‘까지 해주시면 완전히 해결 완료.
다음 편에서는 이런식으로 데이터를 보내는 걸 토대로 다양한 방법을 시도해보도록 하겠습니다.