참고 : https://gist.github.com/twkang/4608424#file-lun2sol-js
country: 국가명(영문) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foreign-send: 해외 송금 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foreign-recv: 해외 받을 때 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cash-buy: 현찰 살 때 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cash-sell: 현찰 팔 때 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
buy-tc: TC 구입 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
standard / basic / default : 고시환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bok / bank-of-korea : 한국은행 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
us-calc : 달러대비 환율 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
통화 | 살때 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
JPY | =getExchangeRate($A14,"cash-buy") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GBP | =getExchangeRate($A14,"cash-buy") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EUR | =getExchangeRate($A14,"cash-buy") |
function getDate(decrease) {
var date = new Date();
if(decrease && decrease > 0) {
date = new Date(date);
date.setDate(date.getDate() - decrease);
}
var yyyy = date.getFullYear().toString(),
dd = date.getDate().toString(),
mm = (date.getMonth() + 1).toString();
if(dd.length == 1) dd = '0' + dd;
if(mm.length == 1) mm = '0' + mm;
return yyyy + mm + dd;
}
var baseURL = 'https://spib.wooribank.com/pib/jcc?withyou=ENENG0358&__ID=c008822&BAS_DT=';
function getExchangeHash() {
var html = '';
var cache = CacheService.getPublicCache();
var cached = cache.get('exchange-rate-woori');
if (cached != null) {
html = cached;
} else {
var decrease = -1;
while(html.length == 0 || html.indexOf('Today\'s exchange rates are not notified') > -1) {
decrease++;
var url = baseURL + getDate(decrease);
var html = UrlFetchApp.fetch(url).getContentText();
}
cache.put('exchange-rate-woori', html, 3600); // cache for 1 hour
}
var hash = {};
var h = html.match(/<tbody[\s\S]*?<\/tr>/g).filter(function(tr) {
return tr.indexOf('<th') == -1;
});
h.map(function(tr) {
var data = tr.match(/\<td[\s\S]*?>*?\<\/(td|th)\>/gm).map(function(td) {
var datum = td.replace(/\<td[\s\S]*?\>|\<a[\s\S]*?\>|\<\/td\>|\<\/th\>|<\/a>|,/g, '').trim();
return (isNaN(parseFloat(datum)) ? datum : parseFloat(datum));
});
var key = data.shift();
hash[key] = {
'country': data[0],
'foreign-send': data[1],
'foreign-recv': data[2],
'cash-buy': data[3],
'cash-sell': data[4],
'buy-tc': data[5],
'standard': data[6],
'bank-of-korea': data[7],
'us-calc': data[8]
};
});
return hash;
}
function getExchangeRate(currency, type) {
if(!currency) currency = 'JPY';
var data = getExchangeHash();
if(!data.hasOwnProperty(currency)) {
throw 'Unexcepted currency: ' + currency;
} else if(!data[currency].hasOwnProperty(type)) {
throw 'Unexcepted type: ' + type;
}
return data[currency][type];
}
var cellConfig = {
'N3': ['JPY', 'standard'],
'O3': ['JPY', 'cash-buy'],
'N4': ['GBP', 'standard'],
'O4': ['GBP', 'cash-buy'],
'N5': ['EUR', 'standard'],
'O5': ['EUR', 'cash-buy'],
};
function setCellValue(cell, value, apply) {
SpreadsheetApp.getActiveSheet().getRange(cell).setValue(value);
if(apply) SpreadsheetApp.flush();
}
function reloadCell() {
for(var cell in cellConfig) {
if(cellConfig.hasOwnProperty(cell)) {
setCellValue(cell, 'Loading..', true);
var value = getExchangeRate.apply(null, cellConfig[cell]);
setCellValue(cell, value, true);
}
}
} |
번호 | 분류 | 제목 | 날짜 | 조회 수 |
---|---|---|---|---|
797 | 컴퓨터잡담 | 파이썬 초보자가 접하기 쉬운 오류 메시지 2 | 2021.06.15 | 1441 |
796 | 컴퓨터잡담 | 파이썬의 IF문 사용시 실행값에서 오류발생시 진행하는 예외처리 방법 | 2021.06.15 | 2864 |
795 | 컴퓨터잡담 | 파이썬 게시물 검색으로 새로운 게시물 등록시 지메일로 파일 보내기 | 2021.06.14 | 2043 |
794 | 컴퓨터잡담 | 파이썬 Beautifulsoup html의 특정 주소만 가져오기 | 2021.06.14 | 2986 |
793 | 컴퓨터잡담 | 농업경영에 이용하지 않는 농지의 처분 의무 | 2021.06.11 | 1223 |
792 | 컴퓨터잡담 | 파이썬 pyautogui 명령어 | 2021.06.06 | 1559 |
791 | 컴퓨터잡담 | 파이썬 한우정액 정보 스프레드로 추출하기 | 2021.06.05 | 1625 |
790 | 컴퓨터잡담 | 파이썬으로 네이버 증권정보 추출하기 | 2021.06.05 | 1874 |
789 | 컴퓨터잡담 | 자주쓰는 파이썬 명령어 | 2021.06.05 | 1249 |
788 | 컴퓨터잡담 | 파이썬 자주 발생되는 에러(오류) 대처방법 | 2021.06.05 | 2662 |
787 | 컴퓨터잡담 | 파이썬 웹페이지 기업정보 추출하기 | 2021.06.02 | 1823 |
786 | 컴퓨터잡담 | 타지역 농지매입 | 2021.06.01 | 1108 |
785 | 컴퓨터잡담 | 파이썬 사이트 정보 가져와서 필요한 내용 추출하기 | 2021.05.31 | 1779 |
784 | 컴퓨터잡담 | 파이썬 셀레니움으로 네이버 증권의 종목 검색하여 특정항목 클릭하기 | 2021.05.30 | 1564 |
783 | 컴퓨터잡담 | 파이썬 동행복권 판매인 모집 공고 발생시 자동알림 | 2021.03.16 | 2272 |
782 | 컴퓨터잡담 | 아두이노 나노 호환보드 칩셋드라이버 CH340 설치 및 | 2021.03.12 | 2366 |
781 | 컴퓨터잡담 | [파이썬] 설치 및 사용방법 | 2021.03.12 | 1859 |
780 | 컴퓨터잡담 | 한글입력이 안될때(how to hangul ...) | 2021.01.08 | 2839 |
779 | [Docs]스프레드시트 | 스프레드시트 함수 | 2020.12.27 | 4825 |
778 | [Docs]스프레드시트 | 스프레드시트 스크립트 소스 | 2020.12.26 | 4892 |
http://urin79.com
우린친구블로그