2010년 2월 2일 화요일

[참고/오류가이드]Excel.Application 을 사용하여 엑셀 파일 열기에 실패하는 경우 (Can't Open Excel File) 가이드

제    목 :        
Excel.Application 을 사용하여 엑셀 파일 열기에 실패하는 경우 (Can't Open Excel File) 가이드

개    괄 :        
Excel.Application 사용 시 “Can't Open Excel File” 메시지가 나오는 경우에 대한 문제점 분석 과 가이드 입니다.

문 제 점 :        
[문제점]
-        fakepath ::인터넷익스플로러8 업로드오류
[원  인]
-        인터넷 익스플로러 8에서 보안에 관련된 사항이 변경됨

[해결방법]
- 인터넷 익스플로어(IE) 도구메뉴 -> 인터넷 옵션 에서 보안 탭 -> 사용자 지정 수준 클릭
- 보안사항에 대한 설정 중 "파일을 서버에 업 로드 할 때 로컬 디렉토리 경로 포함"  이라는 항목을 사용 안함 으로 되있는 것을 사용으로 변경



[참조 블로그] http://blog.naver.com/tnsk8080?Redirect=Log&logNo=10069423935

문제사항 및 해결방법 :        
위는 IE 자체적으로 보안을 변경하여 해결하는 방법입니다. 이는 IE의 옵션 변경을 하여야 하므로 번거로움이 있습니다. 이에 Max Component 중에 Input File Component 가 있습니다. 이를 이용한 Sample 가이드를 참고 하시기 바랍니다.

[Sample]
-        기본적으로 Max Ansi 버전을 기준으로 설명합니다. 만일 Unicode를 사용하시는 경우 CLSID를 변경 하시면 됩니다.

1.        Input File 컴포넌트 선언

<object id=tb_InputFile classid=CLSID:C722848E-C7EE-4DC6-947E-C2CD49BBA9DE
        style="position:absolute; left:355; top=55; width=110; height=23;visibility=hidden;">
<param name="Text"                value='FileOpen'>
<param name="Enable"        value="true">
</object>

엑셀 업로드 (FileComponent Upload) :
        <input type=button value="엑셀 업로드 (FileComponent Upload)" onClick="Open_File()">


2.        자바 스크립트에서 Open 함수를 사용하여 파일 경로를 얻어옴

< function Open_File() {
                tb_InputFile.Open();

                SetDataHeader(tb_DataSet);
//alert(tb_InputFile.Value);
                //LoadExcelData 옵션처리
                var strExcelFileName = "'"+tb_InputFile.Value+"'"; //파일이름
                var nStartRow = 0; //시작Row
                var nEndRow = 0; //끝Row
                var nReadType = 0; //읽기모드
                var nBlankCount = 3; //공백row개수
                var nLFTOCR = 0; //줄바꿈처리
                var nFireEvent = 1;//이벤트발생
                var nSheetIndex = 1; //Sheet Index 추가

                var stropt = strExcelFileName; //1st
                stropt += "," + nStartRow; //2nd
                stropt += "," + nEndRow; //3rd
                stropt += "," + nReadType; //4th
                stropt += "," + nBlankCount; //5th
                stropt += "," + nLFTOCR; //6th
                stropt += "," + nFireEvent; //7th
                stropt += "," + nSheetIndex //8th

                var obj = document.getElementById("tb_DataSet");

                fn_setTime(txtStart);
                obj.Do("Excel.Application", stropt);
                fn_setTime(txtEnd);

        }
</script>

참고URL : http://www.gauce.com/zboard.php?id=componentFAQ&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=136

 

2008년 12월 7일 일요일

벼랑위의 포뇨

벼랑위의 포뇨

 

포뇨포뇨포뇨 아기물고기 저 푸른 바다에서 찾아 왔어요.

 

포뇨포뇨포뇨 오동통통 볼록한 배에 예쁜 물고기

 

" 포뇨 소스께 끼 (좋아) 포뇨 예쁜이름을 얻었네

 

포뇨 인겐끼 나리 (인간이 될꺼야) "

 

깡총깡총 쭈욱쭈욱 다리가 생겼구나 뛰어보자

 

꼬물꼬물 쫘악쫘악 손들이 생겼구나 잡아보자

 

포뇨와 함께 놀때 마다 기분이 너무 좋았죠.

 

빠끔빠끔 쭈욱(죽..) 뻐끔뻐끔 쭈욱(죽..)

 

포뇨가 너무 좋아요.

 

새빨간 모습에 포뇨포뇨포뇨 아기 물고기

 

저 푸른 바다에서 찾아 왔어요

 

포뇨포뇨포뇨 오동통통 볼록한 배에 예쁜 물고기

 

"포뇨~ 끄덕... 포뇨 소스케 끼~~ (좋아)"

2008년 9월 11일 목요일

MediaRss HTML 파일

첨부파일 참고

 

이런 방법도 써봤는데 마땅히 좋은 방법이 떠오르지 않는다.

 

2008년 9월 4일 목요일

Media Rss 이용한 PicasaWeb 이미지 보기 (Piclens 사용)

Media Rss 이용한 PicasaWeb 이미지 보기 (Piclens 사용)

아래 브로그 글을 쓴 후 고민 하다 다시 만들기로 했다.

아무로도 허접해서 만들다 보니 firefox와 이번에 나온 Google 크롬 에서도 테스트를 해봤다. 이전소스 문제를 보강하여

다시 수정하여 올린다. HTML 소스 하나만 있어도 된다. URL을 호출 하는 방식으로 하면 바로 수행도 된다.

파싱 부분은 수정으로 하여야 겠지만 그부분은 나중에 고치도록 하고.. 우선 올린다.

 

추후 piclens.swf 와 google api js 등도 같이 올리도록 해야 겠다.

 

사용된 API 소개를 하면 아래와 같다.

동작 방식은 Media RSS URL을 가지고 google API를 이용하여 XML을 내려 받는다.

XML을 piclens 에서 인식하는 XML로 변경한다. media 부분의 format이 안맞아서 그렇게 함

XML을 String형태로 Piclens flash 에 던져서 이미지가 나오도록 함

현재는 Google Picasaweb의 이미지 URL 만 인식함 HTML의 getPiclensXmlFeed 함수 부분을 수정하면

다양한 부분에서 RSS의 이미지를 사용 할 수 있음

즉 picasaweb이나 flicker 또는 panorama 등에 이미지를 올려놓고 이를 이용하여 홈페이지에서 사용을 할 수 있다.

즉 이미지로 인한 traffic 증가로 고민을 하시는 분에게 추천을 할만 하지 않을까???


piclens를 사용하여 mediarss를 이용한 이미지 검색 시스템은 차세대 멀티미디어 검색의 방향을 제시하는 듯하다.

http://www.piclens.com 에 가서 프로그램을 설치한후 google 플릭커 등에서 이미지 검색 후 piclens로 보면 환상이다.

2008년 8월 21일 목요일

Piclens 를 이용하여 이렇게 만들어 봤다. picasaweb의 이미지를 읽는 형태로 허접,...

XML 파싱 부분이 허접이라 하지만 개념은 이렇게 되는게 맞지 않을까 합니다.

XSLT를 사용하려다. 시간상 node접근 하여 text로 rss를 piclens에 맞는 xml로 만들었습니다.

첨부 파일을 실행 하려면 다운을 받아 하시든지 또는

열기하셔서 실행 하면 됩니다. (이경우는 http://*.google.comhttp://*.naver.net 을 신뢰할 수 있는 사이트 등록을 하여야 합니다. 안하면 xmlhttprequestt 에러 xml load에러 발생합니다. -> 이렇게 하여도 xml load 시 문제가 있네요 근본적으로 아래 URL을 참고하여 crossdomain 을 설정하면됩니다.)

 

[crossdomain 관련 내용 참고]picasaweb api도 자세히 나와 있습니다.

http://code.google.com/apis/picasaweb/reference.html

 

 

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> TEST </title>
 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
 <link rel="alternate" href="photos.rss" type="application/rss+xml" title="" id="gallery" />
 <script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"></script>
 <script type="text/javascript" src="./lytebox/lytebox.js"></script>

<script>
 function getPiclensXmlFeed(xmlFile) {
  var xmlDoc;
  if (window.ActiveXObject) { // IE
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async=false;
     xmlDoc.load(xmlFile);
  } else { // Mozilla, Firefox, Opera, etc.
   var parser = new DOMParser();
   xmlDoc = parser.parseFromString(PicLensLite.THE_FEED, "text/xml");
  }

  var i,j,k;
  var hiddenURLs = "";

  var tempText = '<\?xml version="1.0" encoding="UTF-8" standalone="yes"\?> ';
  tempText += '\n <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss"> ';
  tempText += '\n <channel> ';
  
  tempText += '\n  <title>'+xmlDoc.getElementsByTagName('title')[0].childNodes[0].nodeValue+'\n  </title> ';
  tempText += '\n  <link>'+xmlDoc.getElementsByTagName('link')[0].childNodes[0].nodeValue+'\n  </link> ';
  tempText += '\n  <description>'+xmlDoc.getElementsByTagName('description')[0].childNodes[0].nodeValue+'\n  </description> ';

  var xmlElements = xmlDoc.getElementsByTagName('item');

  for (i = 0; i < xmlElements.length; i++) {
   tempText += '\n  <item> ';

   var oNodeList  = xmlElements[i].childNodes;

   for (j = 0; j < oNodeList.length; j++) {

    if (oNodeList[j].nodeName == "title") { // what about the namespace?
     var title = oNodeList[j].childNodes.item(0).nodeValue;
     tempText += '\n      <title>'+title+'\n     </title> ';
    }
    if (oNodeList[j].nodeName == "link") { // what about the namespace?
     var title = oNodeList[j].childNodes.item(0).nodeValue;
     tempText += '\n      <link>'+title+'\n     </link> ';
    }
    if (oNodeList[j].nodeName == "guid") { // what about the namespace?
     var title = oNodeList[j].childNodes.item(0).nodeValue;
     tempText += '\n      <guid>'+title+'\n     </guid> ';
    }

    var tCount=0;
    if (oNodeList[j].nodeName == "media:group") { // what about the namespace?
      var mNodeList = oNodeList[j].childNodes;
      for (k = 0; k < mNodeList.length; k++) {
/*
       if (mNodeList[k].nodeName == "media:content") { // what about the namespace?
        var url = mNodeList[k].getAttribute("url");
        tempText += '\n     <media:content url="'+url+'" /> ';
       }
*/
       if (mNodeList[k].nodeName == "media:thumbnail") { // what about the namespace?
        tCount += 1;
        if (tCount  <= 2) {
         var url = mNodeList[k].getAttribute("url");
         tempText += '\n     <media:thumbnail url="'+url+'" /> ';
        } else { // content 로 처리
         var url = mNodeList[k].getAttribute("url");
         tempText += '\n     <media:content url="'+url+'" /> ';
        }

       }
//   alert('i=='+i+'\nj=='+j+'\nk=='+k+'\nname='+mNodeList[k].nodeName+'\nVALUE='+url);
      } // k node
    }
   } // j node
   tempText += '\n  </item> ';
  } // i node
  tempText += '\n </channel> ';
  tempText += '\n </rss> ';

  return tempText;
 }
</script>

<script>
 function PicLens() {


//rssurl = 'http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss';
var xmlText = getPiclensXmlFeed(picasarss.value);

//var xmlText = getPiclensXmlFeed("http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss");

txt1.value = xmlText;

PicLensLite.start({feedData:xmlText});
//PicLensLite.start({feedUrl:'photos.rss'});

 }
</script>
</head>
<body>
<input type="text" name="picasarss" id="picasarss" size=120
value="http://picasaweb.google.com/data/feed/base/user/outofwrd/albumid/5018407575414284625?kind=photo&alt=rss">

<input type="button" name="TEST" value="이미지조회" OnClick="PicLens();">

<textarea id=txt1 cols=140 rows=40></textarea>


</body>
</html>

2008년 7월 26일 토요일

Google Picasaweb을 이용한 Flash Slide 방법

이미지 사이즈가 커서 구글 피카사에 올리는 일이 많았는데...

google site기능에 flash slide 기능을 만들어 놓은 것이 있어 한번 테스트 해보았다.

 

아래 코드데로 사용하면 picasaweb의 이미지를 표시할 수 있다.

대단한 구글이라고 생각한다. 이것을 드림위버에서 자연스럽게 가능할 것으로 보인다.

app 의 승리라고나 할까??

 

<embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="800" height="533" wmode="transparent" flashvars="host=picasaweb.google.com&amp;captions=1&amp;amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foutofwrd%2Falbum%2FrzXWpD%3Fkind%3Dphoto%26alt%3Drss%26" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>

 

 

알고보니 How can I embed a slideshow into my blog or webpage?

에 자세히 나와 있네요...

picasaweb을 한국어로 설정하면 해당 메뉴가 안나옵니다. 아직은 영문에서만 제공되는 기능 입니다.

구글은 역시 메일 메일 변신하는 느낌이 듭니다. (picasaweb의 설정에서 한국어를 English로 바꾸고 위의 설명데로 합니다.)

그러면 Embed Slideshow 라는 링크가 나옵니다.

 

 

 

 

 

 

 

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

IE7 에서 Google picasaweb의 SlideShow 가 안되는 문제

위의 테스트를 IE6에서 하고서 IE7에서 보니 큭 이럴수가 안된다.

firefox에서는 되는데... 이런 IE7 이라구...

MS의 IE8이 빨랑 나왔으면 좋겠다는 생각이 문득 든다.

 

해서 찾다보니 이런것도 있더라.

picasaweb에서 slideshow를 html(ajax)로도 해준당...

 

소스는 이렇게 수정 했다. (IE6와 IE7의 구분 을 하고)

 

<HTML>
<HEAD>
<script language="javascript">
<!--//
  window.onload = backgroundChange;    // 윈도우가 로드되면 backgroundChange함수 실행
  function backgroundChange(){                                         // backgroundChange함수 시작
     var oDiv=document.getElementById("testDiv");

      if( navigator.appName.indexOf("Microsoft") > -1 ){         // 마이크로소프트 익스플로러인지 확인
        if( navigator.appVersion.indexOf("MSIE 6") > -1){         // 익스플로러이면 버전 6인지 확인
            oDiv.innerHTML = '<div class="goog-ws-dash-box goog-ws-dash-box-border" style="display:table-cell; width: 800px;"><div class="goog-ws-dash-box-inside"><embed type="application/x-shockwave-flash" src="
http://picasaweb.google.com/s/c/bin/slideshow.swf" width="800" height="533" wmode="transparent" flashvars="host=picasaweb.google.com&amp;captions=1&amp;amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foutofwrd%2Falbum%2FrzXWpD%3Fkind%3Dphoto%26alt%3Drss%26" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></div></div>';

        }else if(navigator.appVersion.indexOf("MSIE 7") > -1){  // 익스 플로러이면 버전 7인지 확인
            oDiv.innerHTML = '<IFRAME border=none name=showroom_iframe marginWidth=0 marginHeight=0 frameborder=0 src="
http://picasaweb.google.com/outofwrd/rzXWpD/photo#s5225837495190074290" width="100%" height=100%></IFRAME>';
        }else {
        }
    }else{                                                                               // 익스플로러가 아닐 경우
       oDiv.style.backgroundImage = "url('a.gif')";

    }
  }

//-->

</script>
</HEAD>
<BODY>

<script language="javascript">
<!--//
  window.onload = backgroundChange;    // 윈도우가 로드되면 backgroundChange함수 실행
  function backgroundChange(){                                         // backgroundChange함수 시작
     var oDiv=document.getElementById("testDiv");

      if( navigator.appName.indexOf("Microsoft") > -1 ){         // 마이크로소프트 익스플로러인지 확인
        if( navigator.appVersion.indexOf("MSIE 6") > -1){         // 익스플로러이면 버전 6인지 확인
            oDiv.innerHTML = '<div class="goog-ws-dash-box goog-ws-dash-box-border" style="display:table-cell; width: 800px;"><div class="goog-ws-dash-box-inside"><embed type="application/x-shockwave-flash" src="
http://picasaweb.google.com/s/c/bin/slideshow.swf" width="800px" height="533px" wmode="transparent" flashvars="host=picasaweb.google.com&amp;captions=1&amp;amp;RGB=0x000000&amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foutofwrd%2Falbum%2FrzXWpD%3Fkind%3Dphoto%26alt%3Drss%26" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></div></div>';

        }else if(navigator.appVersion.indexOf("MSIE 7") > -1){  // 익스 플로러이면 버전 7인지 확인
            oDiv.innerHTML = '<IFRAME border=none name=showroom_iframe marginWidth=0 marginHeight=0 frameborder=0 src="
http://picasaweb.google.com/outofwrd/rzXWpD/photo#s5225837495190074290" width="800px" height=533px></IFRAME>';
        }else {
        }
    }else{                                                                               // 익스플로러가 아닐 경우
       oDiv.style.backgroundImage = "url('a.gif')";

    }
  }

//-->

</script>
<div id="testDiv" style="width:800px;height:533px"></div>

</BODY> 
</HTML>

 

 

---------------- 데모 -------

naver에서는 iframe이 되지 않아 될라나 모르겠네요...

실제 소스는 아래와 같습니다.

 

<IFRAME border=none name=showroom_iframe marginWidth=0 marginHeight=0 frameborder=0 src="http://picasaweb.google.com/outofwrd/rzXWpD/photo#s5225837495190074290" width="800px" height=533px></IFRAME>

 

 

 

2008년 7월 15일 화요일

대아 수목원 에 갔다와서.... (대아수목원)

대아 수목원에 갔다 왔다 ..

 

대아 저수지를 지나 계곡을 따라 들어가니 대아 수목원이 보인다. 그리고 조금 지나니 예약한 펜션이 보였다.

수목원 하우스 펜션에서 하루를 보냈다.

정말 물이 맑고 깨끗하다. 현서가 물속에서 나올 생각을 하지 않는당...

대아 수목원 전경 - 오후 3시가 되니 다른 손님도 도착하여 주차장에 차들이 많다.

 

도착하자 마자 현서하고 부산 하람이가 같이 물놀이를 하고 있다.

물이 너무 께끗해서 물고기를 잡는 사람도 있다. 눈에 물고기가 보일 정도로 많다.

현서가 심토이 났나 보다. 표정이 심상치 않은데... 하람이 누나가 잘놀아주니 다행이당

 

다음날 아침 식사후에 수목원을 찾았다. 봄에 금낭화가 유명하다 하는데 가는날은 초여름이라 아래 사진으로 대신한다.

 

이건 대아 수목원의 자랑인 금낭화라고 한다.

 

대아 수목원 안내판이다. (등산 코스로 좋을듯 하당... )

우린 수목원 인근만 산책을 했다.

 

 

 

대아 수목원 게시판
 
 
 
* 하절기(3∼10월) 09:00 ~18:00
* 동절기(11∼2월) 09:00 ~17:00
 

전북대아수목원

주 소 : 완주군 동상면 대아리 산1-2번지 (우편번호 565 - 890)

전 화 : 063-243-1951 

 

 

[산 책 로 ] 총 연 장 : 19.42㎞ - 임도 : 7.21㎞, 산책로 : 13.62㎞

[이용코스] - 산책로간 연결 지선 활용 다양한 코스 선택 가능 . 어린이 노인 : 임도 코스 ∼ 청·장년 : 능선 코스

[소요시간]코스별로 1시간 ∼ 3시간 정도 소요