반응형

AppsScript 63

Apps Script로 Google Sheets의 Checkbox 생성 후, Checkbox 조작하기

Apps Script를 이용해, 1. Google Sheets에 Checkbox를 생성 2. 체크가 되엇을떄 다음셀에 값을 입력 3. 체크된 checkbox 수 세기 4. 전체선택/전체선택해제 를 해보겠다. 체크박스 생성 function createCheckbox() { const sheetName = "sheetNameHere"; const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); sheet.getRange("B2:B10").insertCheckboxes(); } 체크박스 선택 edit event 체크박스 선택 시, 앞 셀의 값을 뒷 셀에 뿌려주기. /** * edit event * @param {object} e..

GCP/Apps Script 2023.01.25

Apps Script로 Google Sheets의 sheets들 index(목차) 만들기

엑셀 인 Google Sheets 는 sheet를 계속 생성할 수 있다. 한 파일 안에 sheet 들을 목차 형식으로 빼고싶어졌다. 현재 개발중인 Google sheets의 sheet 들. 일단, Google Sheets 의 sheet 이름들을 가져온다. function getSheetsNameAndCreateIndex() { const sheet = SpreadsheetApp.getActiveSpreadsheet(); const sheets = sheet.getSheets(); for ( i in sheets ) { const sheetName = sheets[i].getName(); console.log(sheetName); } } 시트이름과, URL 링크를 목차라는 sheet 에 뿌려줘본다. fun..

GCP/Apps Script 2023.01.13

Apps Script로 Google Sheets의 종속되는 Dropdown 만들기

입력시트에서, 공통데이터 시트의 데이터들을 dropdown으로 선택하여 입력하고 싶다. 하지만 data validation을 위해 시도에서 서울시를 선택하면 서울시에 해당하는 지사들만 입력하고 싶다. 동작지사 강남지사 강남지사 중구지사 중구지사 관악지사 강북지사 강동지사 공통데이터에서 사용할 데이터 범위의 이름을 먼저 지정해준다. 범위를 지정하고, 우클릭을 한 뒤 [이름이 지정된 범위 지정] 을 클릭한다. 범위 이름을 지정하면, 오른쪽과 같이 지정된 셀 범위의 이름을 확인 할 수 있다. /** * 데이터 구조 가져오기. */ function getStructreData() { const ss = SpreadsheetApp.getActive(); const data = ss.getRangeByName("d..

GCP/Apps Script 2023.01.12

Apps Script로 Sidebar를 이용한 이메일 전송 컴포넌트 개발

정해진 양식으로만 이메일을 보내보는것을 해봤다. Apps Script로 Email 보내기 (HTML 양식) 이메일을 보내는 기능을 구현한다. 이메일의 경우는, Google Sheets로 관리되는 거래내역이나 급여내역 등을 다수 전송 할 경우 사용 할 수 있을것이다. 템플릿을 만들고, Google Sheets의 데이터들을 whiseung.tistory.com 수신자와 내용을 입력해 보낼 수는 없을까? Google Sheets에서 제공하는 sidebar를 이용해 메일을 보내본다. 일단 상단 메뉴를 만든다. - Code.gs // Code.gs function onOpen() { SpreadsheetApp.getUi() .createMenu('✉️ email') .addItem('📨 email sender',..

GCP/Apps Script 2023.01.12

Apps Script로 Email 보내기 (HTML 양식)

이메일을 보내는 기능을 구현한다. 이메일의 경우는, Google Sheets로 관리되는 거래내역이나 급여내역 등을 다수 전송 할 경우 사용 할 수 있을것이다. 템플릿을 만들고, Google Sheets의 데이터들을 붙여넣어 보낼 수 있을것이다. 단 발신자는 AppsScript의 생성자 계정으로 변경 할 수 없다. Apps Script 의 이메일 전송 함수 /** * Send Email. * 이메일을 이용한 Notify. * @param {string} recipient = 받는사람 * @param {string} subject = 제목 * @param {string} body = 내용 * Ref = */ function sendEmail(recipient, subject, body) { var recip..

GCP/Apps Script 2023.01.11

Apps Script로 어제자 네이버 증권 시황 뉴스를 cheerio를 이용해 크롤링 해오기

하나 하나 붙이다보니 욕심이 생겼다. 매일아침 출근길에 증시관련 뉴스를 헤드라인만 받아보고 싶었다. python에서 크롤링은 해봤는데, apps script에서도 시도해 보았다. https://finance.naver.com/news/mainnews.naver 주요뉴스 : 네이버 증권 관심종목의 실시간 주가를 가장 빠르게 확인하는 곳 finance.naver.com 아침 출근시간에 오늘자 뉴스를 받게되면, 뉴스가 없을것 같다. 그래서 어제자 뉴스를 조회하기로 했다. https://github.com/tani/cheeriogs GitHub - tani/cheeriogs: Cheerio for Google Apps Script Cheerio for Google Apps Script. Contribute to..

GCP/Apps Script 2023.01.06

Apps Script로 Google Sheets 상단 메뉴 버튼 만들기

Google Sheets에서 Apps Script 의 function들을 실행 할 수 있는 방법은, 상단 메뉴에 버튼을 추가하거나 sheet 내부에 버튼을 추가하는 방식이 있을 것이다. 상단 메뉴에 버튼 만드는법 Apps Script에서 제공하는 Simple Tirggers 의 onOpen() 을 이용한다. 해당 Google Sheets가 열릴 때 마다 실행 되는 트리거 이다. SpreadsheetApp API의 createMenu 를 이용한다. 실행방법은 간단하다. .createMenu('상위메뉴 이름) .addItem('하위메뉴 이름', '실행될 함수 명') /** * Generate Top buttons. */ function onOpen() { SpreadsheetApp.getUi() .creat..

GCP/Apps Script 2023.01.03

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를 참조하여 작업을 진행한다. 물론 DB에 접근해서 가져오는 방법도 있지만, 쿼리를 통해 DB를 수정해야 하거나, 수정할 수 있는 페이지를 별도로 만들어야 할 것이다. 각각 영업팀에서 Master 시트의 데이터를 참조하는 방법은 아래와 같다. Google Sheets에서 제공하는 “IMPORTRANGE” 함수를 사용한다. =IMPORTRANGE(참조할_..

GCP/Apps Script 2022.09.07
반응형