반응형

GCP/Apps Script 95

Apps Script로 Google Sheets에서 Dropdown의 multi select(다중선택) 구현

현재 ‘code’ 라는 시트의 데이터를 Dropdown(선택상자, SelectBox) 을 조회 조건으로 사용 중이다. ‘testSheet’ 라는 시트에서, G/L 계정의 조회 조건을 다중 선택을 하고 싶다는 요구 사항을 받았다. Google sheets에서 제공하는 기능은 없었고, 커스텀이 필요했다. 앞의 코드를 선택하면, 코드에 부합하는 뒤의 명칭을. 뒤의 명칭을 선택하면, 명칭에 부합하는 앞의 코드를 뿌려주는 기능도 물론 포함이다. 일단, onEdit() 트리거를 사용한다. code 와 명칭이 변경될때 event를 생성한다. /** * edit event * @param {object} e = event */ function onEdit(e) { const getValue = e.value; cons..

GCP/Apps Script 2023.01.02

Apps Script로 공공데이터 포털 openAPI 데이터를 매일 Telegram으로 받기

매일 주택청약 확인을 위해 홈페이지를 들어갔다. https://www.applyhome.co.kr/ai/aib/selectSubscrptCalenderView.do#a 매일 홈페이지를 들어가지 않고, 공공데이터 포털에서 제공하는 데이터를 Telegram 메세지로 받아보도록 해봤다. 1. telegram bot 설정하기 BotFather 을 검색하고 인증되어 있는 BotFather을 선택한다. /start 를 입력하고, /newbot 으로 bot을 생성한다. 생성할 bot 이름을 입력한다. 입력하면 토큰을 발 받을 수 있다. getUpdates url 을 호출하면 빈값을 반환한다. https://api.telegram.org/bot${token}/getUpdates {"ok":true,"result":[{..

GCP/Apps Script 2022.12.29

Apps Script로 MSSQL 데이터를 분단위 trigger로 sync 유지하기

mssql 의 데이터를 가져와 Google Sheets에 데이터를 뿌려 줘 본다. 해당 Google Sheets의 데이터들의 내용을 주기적으로 MSSQL 데이터와 sync를 맟추고 싶다. 이를 해결하기 위해, Apps Script에서 제공하는 Trigger 중 Time-driven 을 이용한다. 일단 MSSQL의 데이터를 해당 sheet에 뿌려준다. const address = 'mssql ip address'; const port = 'mssql port'; const user = 'mssql user'; const userPwd = 'mssql password'; const db = 'mssql database'; const dbUrl = `jdbc:sqlserver://${address}:${por..

GCP/Apps Script 2022.12.27

관리용 Apps Script로 여러개의 Google Sheets 템플릿 관리하기

아래와 같이 동일한 템플릿의 여러 Google Sheets 파일들을 관리해야 할 경우가 발생할 수 있을것이다. 영업팀의 경우, 서울 영업팀, 부산 영업팀의 Google Sheets들이 따로따로 존재할 것이고, 서울, 부산의 sheet 템플릿에 동일한 수정이 필요할 경우가 생길것이다. 연락처라는 항목 뒤에 다른 항목을 추가하려고 한다. 10개의 사업소일 경우, 모든 사업소의 파일을 열어 수정해주어야 할것이다. Google Sheets들의 URL 들을 가지고, 모든 sheet의 항목을 한번에 추가 할 수있다. 먼저 파일들의 url들을 변수로 선언해주고, 변수들을 배열에 담아, loop를 돌아주면서 주어진 셀에 모두 같은 값과 서식을 지정해주는 방식으로 구현하면 모든파일을 다 수정할필요 없이, Apps Scr..

GCP/Apps Script 2022.12.21

Apps Script로 Google Sheets에서 보고서 양식의 조회저장 기능 구현

요구사항으로 Google Sheets 를 통해 보고서 형식의 조회/입력 양식 개발건이 들어왔다. 조회는 원래 문서번호에 dropdown을 생성하여 변경 시 조회하도록 구성하였으나, Trigger의 속도가 느려, 문서 번호를 Sidebar에서 선택하는 방식으로 수정하였다. 조회 시 : BigQuery에서 데이터를 select 한 후 각각의 셀에 값 할당. 저장 시 : 조회할 영역별로 데이터를 저장. // 미팅목적 const meetingInfo = sheet.getRange("E13:BY15").getValues(); insert query문을 string으로 생성하여 저장하도록 구한함 // 미팅목적 for (i in meetingInfo) { valueText += meetingInfo[i][0] + '..

GCP/Apps Script 2022.10.11

Apps Script로 JDBC를 이용해 Oracle 데이터 가져오기

Apps Script에서 JDBC를 이용해 Oracle 에 접근해 데이터를 가져와 본다. jdbc만 변경하면 mysql, mssql 등도 접근이 가능하다.` // Replace the variables in this block with real values. const address = 'ip'; const port = 'port'; const user = 'user'; const userPwd = 'password'; const db = 'db'; // Read up to 1000 rows of data from the table and log them. function readFromTable() { const dbUrl = `jdbc:oracle:thin:@${address}:${port}:${db..

GCP/Apps Script 2022.09.19

Apps Script로 간단한 웹페이지 배포하기

Apps Script로 간단한 웹페이지를 생성 할 수 있다. 이 웹페이지에서 Bigquery, Database, Google sheets로 데이터를 입력(입력)할 수 있다. Simple Trigger인 doGet()를 이용한다. function doGet(e) { return HtmlService.createTemplateFromFile("form").evaluate() .setTitle("WebApp Form Toggle-Show-Hide Password") .addMetaTag('viewport', 'width=device-width, initial-scale=1') .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); } 위 코드는 별도의 ..

GCP/Apps Script 2022.09.19

Apps Script로 Google Sheets에서 Date 정보 가공하기

Google Sheets에서 날짜에 대한 정보를 가져오길 원한다. =IF(ISBLANK(A4), "", YEAR(A4)&" 년") =IF(ISBLANK(A4), "", MONTH(A4)&" 월") =IF(ISBLANK(A4), "", DAY(A4)&" 일") =IF(ISBLANK(A4), "", WEEKNUM(A4)&" 주차") =IF(ISBLANK(A4), "", TEXT(WEEKDAY(A4), "ddd")) 만약 BigQuery에서 데이터를 가져와서, 수식을 할당하려면? const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheetName); const sheet_lastrow = sheet.getLastRow(); // 월 수식 할당 c..

GCP/Apps Script 2022.09.16

Apps Script로 Google Sheets의 마스터성 데이터 관리하기

Google Sheets 는 공동 작업 툴이다. 서로 다른 부서(팀)의 파일에는 작업 권한이 없어야 한다. 하지만 부서(팀) 내에서 공통으로 사용하는 마스터성의 데이터들은 존재할 것이다. (예들 들면 드롭다운 구성) 만약 마스터 데이터의 수정이 일어나면 모든 부서(팀)의 Google Sheets를 열어 수정할 수는 없다. 그래서 공통으로 관리하는 sheet를 참조하여 작업을 진행한다. 물론 DB에 접근해서 가져오는 방법도 있지만, 쿼리를 통해 DB를 수정해야 하거나, 수정할 수 있는 페이지를 별도로 만들어야 할 것이다. 각각 영업팀에서 Master 시트의 데이터를 참조하는 방법은 아래와 같다. Google Sheets에서 제공하는 “IMPORTRANGE” 함수를 사용한다. =IMPORTRANGE(참조할_..

GCP/Apps Script 2022.09.07

Apps Script의 trigger 사용기와 활용 예시

💡Apps Script에서 제공하는 trigger를 사용하고 느낀점을 적어보았다. 목차 1. Apps Script에서 제공하는 Trigger의 종류 2. Apps Script Trigger 사용 시 주의할 사항 3. 속도 이슈 4. 권한 이슈 5. Apps Script Trigger 활용 예시 1. Apps Script에서 제공하는 Trigger의 종류 Apps Script 에서는 두가지 trigger를 제공한다. 1.1 Simple Triggers Simple Triggers | Apps Script | Google Developers 간단한 트리거 | Apps Script | Google Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to ..

GCP/Apps Script 2022.09.07
반응형