webservice함수.xlsx

엑셀 2013 이전 작성했던 WebService관련함수 3가지에 관한 글을 보면 대략적으로 사용방법은 아실거라 생각됩니다. 그럼 간단하게 새주소 반환하는 웹서비스 함수를 써보도록 하겠습니다.

물론 이 예제는 이해를 돕고자 하는 거라 엑셀파일이 좀 지저분하네요 ^^

  1. EncoderURL함수를 요청할 주소를 -> 웹서비스가 요청하는 문자형식으로 바꿔줘야 합니다.

Ex)서울시 용산구 한남동 714

  1. WebService함수를 사용하여 q부분에 대하여 아래와 같이 변경한다.

=http://apis.daum.net/local/geo/addr2coord?apikey=DAUM_LOCAL_DEMO_APIKEY&q= & B3 & "&output=xml"

  1. FilterXml을 사용하여 새주소를 반환한다.

=FILTERXML(B2,"//newAddress")

 

엑셀 함수 3개만 알면 위와 같이 간단하게 널리고 널린 각 분야별 오픈API들을 엑셀에서 사용할 수 있게 되었습니다.

물론 위의 세가지 함수만으로는 실무에 적용하기는 어렵다고 생각됩니다.

그러나 이 글을 읽는 분들이 어느 정도 엑셀 함수와 기능에 관심이 있다고 한다면 거의 프로그래밍수준의 결과값을 얻을 수 있다고도 생각됩니다.

 

자신이 OPENAPI로 뭘 데이터화 할 수 있는지는 인터넷에서 검색해보세요..

포털들은 거의 openapi를 제공합니다. 또한 많은 공공기관들도 OPENAPI를 지원합니다.

워낙 무료로 지원해주는 부분들이 많아서 일일히 나열하기가 힘들 정도입니다.

 

신고
Posted by VSTO

1 .http://apis.daum.net/local/geo/addr2coord?apikey=DAUM_LOCAL_DEMO_APIKEY&q=%EB%8C%80%ED%95%99%EB%A1%9C&output=xml을 열면 아래와 같은 XML형식의 문서를 보실 수 있습니다.

 

 

2. 1번과 같이 XML파일에는 수많은 정보가 체계적으로 들어 있습니다. 새로운 FILTERXML함수에는 아래와 같이 두개의 함수 인자를 가지고 있습니다.

 

 

2. 첫번째 인자인 xml이 뭔지는 알았으니 이제 XPATH가 뭔지 알아야 할 차례입니다.

위의 XML문서를 보면 아래와 같이 3단의 구성을 가지고 있습니다.

1.단계 <Channel>

2.단계 <Title>

2.단계 <Item>

3단계 <title>

 

Channel의 자식들이(2단계) 존재하며 2단계의 Item만이 결혼을 했는지 3단계의 자식들을 가지고 있습니다.

 

3. 이제 XML문서에서 항목들("< >"묶여진 항목들) 중 중복되는 것이 없는 단일 항목은 바로

//lng를 함수 인자로 넣으면 됩니다. 단일 항목이 아니라 TITLE와 같은 2단계와 3단계의 중복되는

항목이 있을 때는 어떻게 해야 할까요? //item//title하면 해결이 됩니다.

Ex) =FILTERXML($B$1,"//lng")

=FILTERXML($B$1,"//title")

=FILTERXML($B$1,"//item//title")

 

다른 방법들도 많을 거라 생각되지만 제가 아는 방법들은 이거네요^^

 

아마 이 내용을 유심히 보신 분들은 여기서 하나 궁금하신 사항이 있을 거라 생각됩니다. xml파일에는 여러가지의 Item들을 가지고 있는데 두번째 세번째 아이템은 어떻게 가져오는지에 대해서요.. 이부분은 배열수식으로 해결하시면 됩니다.^^

**배열수식 사용법

  1. 셀들을 여러 개 선택한 후
  2. 함수를 입력
  3. 컨트롤 + 쉬프트 + 엔터
저작자 표시 비영리 변경 금지
신고
Posted by VSTO

엑셀 2013에서는 웹과 관련된 함수 3종세트가 추가되었습니다..

 

웹서비스관련 함수를 쓸려면 이 세가지를 잘 조합을 해야하는데 첫번째로 ENCODEURL함수의 사용방법입니다.

 

우선 전 글에서 아래와 같은 URL을 보았을겁니다.

 

http://apis.daum.net/local/geo/addr2coord?apikey=DAUM_LOCAL_DEMO_APIKEY&q=%EB%8C%80%ED%95%99%EB%A1%9C&output=xml

 

그중 q부분을 보시면 정말 이상한 문자들이 나오죠??

 

거의 대부분 웹서비스가 위와 같이 이상한 문자들로 요청을 합니다.

 

이때 필요한 함수가 엑셀 2013에 추가된 EncoderUrl함수입니다.

(2010부터 추가된 건 아니겠지^^;)

 

=ENCODEURL("서울시")  넣으니 아래와 같이 이상한 문자가 나옵니다..^^

 

반환값 : %EC%84%9C%EC%9A%B8%EC%8B%9C

 

이걸로서 웹서비스의 가장 중요한 첫 함수인 ENCODEURL의 사용방법을 알아보았습니다.

저작자 표시 비영리 변경 금지
신고
Posted by VSTO

엑셀에 참 재미있는 함수가 추가 되었네요...

 

바로 웹서비스라는 함수인데요..

 

이 기능이 왜 재미있는지 말씀드리면...

 

엑셀로 vba를 못하셔도 웹 데이터를 바로 가공할 수 있다는 것입니다. 참 편하고 대단한 기능입니다.

 

간단한 예들을 정리해드리자면

 

1. 엑셀에서 새주소 변환 

  

엑셀 2013의 WebService함수로 쉽게 가능해집니다. 몇천개의 주소록도 함수 몇개만 조합하시고 쭈욱 드래그....

 

그럼 바로 새주소로 변환이 됩니다...

 

2. 아래 웹서비스 싸이트들에서 가능한 모든것들을 여러분들은 엑셀 데이터로 가공할 수 있습니다..

 

서론은 여기까지 하고..

 

------------------------------------------------------------------------------------------------------

 

웹서비스...간단하게 대표적인 두가지만 소개하겠습니다..

 

네이버 오픈API : http://dev.naver.com/openapi/

 

다음 오픈API : http://dna.daum.net/apis/dashboard

 

이외에도 구글등 대형포털싸이트는 거의 API만 등록을 하면 웹서비스를 받을 수 있습니다.

 

자 이제 간단한 예제 하나를 실행해보겠습니다.

 

우선 다음 주소변환 API는 아래와 같이 우리가 인터넷창에서 많이 본 아래와 같은 주소로 요청을 합니다.

 

http://apis.daum.net/local/geo/addr2coord?apikey=DAUM_LOCAL_DEMO_APIKEY&q=%EB%8C%80%ED%95%99%EB%A1%9C&output=xml

 

간단하게 위와 같은것을 URL이라고 하는데요 인터넷 주소라고 생각하시구요..

 

위의 인터넷 주소를 쭈욱 읽어보시면

======================================================================================================

- apiKey가 필요하시다는 것을 알 수 있구요

 

- q는 그냥 변환하고 싶은 주소라고 생각하시면 되요 그런데 참 이상한 문자 집합아죠??^^; 뒤에 설명드릴께요..

 

- output=xml <--xml로 반환받아라... 대충 해석하면 이렇게 됩니다..

======================================================================================================

 

그럼 이제 함수로 어떻게 반환받는지 다음 글에서 정리 하겠습니다..

 

윈도우8이 아직도 적응이 안되서 캡처하는 방법이 많이 불편하네요^^;

저작자 표시 비영리 변경 금지
신고
Posted by VSTO

이제 다시 시작-,.-

개인적으로 국내지도는 다음맵이 최고라고 생각되서..

다음지도api쪽을 보고 있다..

아래는 오피스2013앱 개발 가장 기본적인 예제 개발문서를 보고 다음지도만 붙혀보았다.



 

저작자 표시 비영리 변경 금지
신고
Posted by VSTO


티스토리 툴바