Excel 의 Column 문자를 숫자로, 숫자를 알파벳 문자로 변환하는 방법입니다.


  1.  
  2.         /// <summary>
  3.         /// Coulumn 문자를 Int 값으로 변환
  4.         /// </summary>
  5.         /// <param name="value">Column 문자</param>
  6.         /// <returns></returns>
  7.         static public int Column2Int(string value)
  8.         {
  9.             int result = 0;
  10.  
  11.             if (value != null && value.Length > 0)
  12.             {
  13.                 foreach (char item in value)
  14.                 {
  15.                     result = 26 * result + (item - 'A');
  16.                 }
  17.  
  18.                 result++; //1 based
  19.  
  20.                 if (value.Length > 1)
  21.                 {
  22.                     result += 26;
  23.                 }
  24.             }
  25.  
  26.             return result;
  27.         }
  28.  
  29.         /// <summary>
  30.         /// Column 숫자를 알파벳 문자로 변환.
  31.         /// </summary>
  32.         /// <param name="value">Column 숫자</param>
  33.         /// <returns></returns>
  34.         static public string Int2Column(int value)
  35.         {
  36.             List<char> result = new List<char>();
  37.  
  38.             if (value > 0)
  39.             {
  40.                 value--; //1 based
  41.  
  42.                 if (value < 26)
  43.                 {
  44.                     result.Add((char)('A' + value));
  45.                 }
  46.                 else
  47.                 {
  48.                     value -= 26;
  49.                     do
  50.                     {
  51.                         result.Add((char)('A' + value % 26));
  52.                         value = value / 26;
  53.                     } while (value > 0);
  54.  
  55.                     if (result.Count == 1)
  56.                     {
  57.                         result.Add('A');
  58.                     }
  59.                 }
  60.             }
  61.  
  62.             return new string(result.Reverse<char>().ToArray());
  63.         }

행복한 고수되십시오.



woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\





Posted by woojja

댓글을 달아 주세요

Excel 을 사용하시다가


Excel Office Object 를 사용하시다가 다음구문에서 "해당 셀이 없습니다." 라는 류의 오류가 발생한다면

xlWorkSheet.Range[firstCell, lastLastCell].SpecialCells(MSExcel.XlCellType.xlCellTypeConstants)

해당 영역 내에 아무런 값이 없어서 발생하는 것입니다.


값이 들어가 있는 녀석들만 골라서 추려주거든요. ^^

행복한 고수되셔요. ^^


woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\






Posted by woojja

댓글을 달아 주세요

Office Version 은 아래와 같습니다.
Original: 12.0.4518.1014 
SP1:      12.0.6213.1000 
SP2:      12.0.6423.1000

PS. 필요한 사람이 있으려나? ㅋㅋㅋ

행복한 고수되셔요...



woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\



Posted by woojja

댓글을 달아 주세요

  1. 2011.11.23 13:31

    안녕하세요.
    우연히 html5 관련 공부를 하다 들리게 되었습니다.

    질문이 있는데요 제가 이번에 html5 강좌를 듣게 되었는데 우정환님에 사이트에 있는 내용과 학원교재내용이 거의 똑같더군요.
    html5 사이트에 올려주신 자료는 우정환님 것인지요? 학원에 사기당한 기분이라서요 ㅡ.ㅡ

    • 2012.03.13 01:36 신고

      얼마나 비슷하길래요?

      제가 인용, 참고한 것도 있구요.
      그렇다고 베낀것이 아닌 제 나름대로 이해하고 그 바탕으로 작성한 것입니다.
      소스나 이미지 제작 캡쳐는 모두 제가 작성한 것이구요.

      보시면 참고한 서적의 이름들도 함께 적었습니다.

      (학원 자체교재인가요? 아니면 시중의 판매서적인가요? ㅋㅋㅋ 궁금해지네요... ^^)


VSTO application 의 경우 실행중 Error 가 발생하면 Error 를 소리소문없이 꿀꺽 먹어버리는 경우가 있다.
이럴때 환경변수에 변수를 등록해 줌으로써 Alert 창으로 나타내도록 할 수 있는데...

다음과 같은 내용을 reg 파일로 만들어 실행시켜도 좋고, 변수를 환경변수에 등록해 주어도 좋겠다.

Windows Registry Editor Version 5.00

[SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"VSTO_SUPPRESSDISPLAYALERTS"="0"
"VSTO_LOGALERTS"="1"



행복한 고수되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\



Posted by woojja

댓글을 달아 주세요

 

Specifying a Product Name, Publisher Name and other properties for VSTO solutions (Saurabh Bhatia)


나중에 한번 정리해봐야 겠습니다.



행복한 고수되십시요.


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\




Posted by woojja

댓글을 달아 주세요


"LoadBehavior: Not Loaded. A runtime error occured during the loading of the COM Add-in"

현재 PowerPoint COM Addin 을 개발 중에 있습니다.
언제나 그렇듯이 개발자 PC 에서는 만든 Application 이 잘돌죠.
몇번이고 테스트를 하고 Build 를 하고 Setup 파일을 생성하기를 수십번...
배포버전을 생성했습니다.

훔... 다른 컴터에 배포를 하자 염려했던 점이 발생했습니다.
셋업이 안된거죠... ^^'
제가 잘 몰랐어서...

여러번 설치하고 지우고, 수동으로 Registry 도 등록했다가 지우고.. 삽질을 여러번... ^^'

현상은 아래와 같습니다.


하단에 보시면 Load Behavior : Not loaded. 가 보이시죠?
Load 가 안되었다면 Load 하면 되지 뭐...
라는 생각으로 단순히 CheckBox 를 선택하고 OK 버튼을 클릭을 하면... 위와 같은 에러 메시지를 보실 수 있습니다.
그런데 실행시에는 제가 만든 Addin 이 제대로 실행이 되는지 알수가 없습니다.

위에 나타난 링크에서 많은 걸 얻었습니다.
한번 읽어보시고 링크에 링크를 따라들어가보시고 고수되시길..
http://go.microsoft.com/fwlink/?LinkId=135965

그래서 Office Application 이 구동이 되고 COM Addin 이 Loading 되는 시점부터 제대로 올라오는지에 대한 사항을 알수 있게 할 수 있습니다.
이겁니다.
환경변수에 위 두녀석을 등록하면 VSTO가 읽고 두 변수에 대한 작동을 하도록 되어있습니다.
위 사항은
http://msdn.microsoft.com/en-us/library/ms269003(v=vs.80).aspx
이곳에서 살펴보시면 되겠습니다.


환경변수를 추가하게되면 위와 같이 Addin 이 Load 되는 시점에 잘 못되었다는 것을 확인 할 수 있습니다.


그래서 Add-ins 부분에서 확인해 보면 제가 만든 Addin 은
inActive Application Add-ins 파트에 포함되어있는 것을 보실 수 있습니다.
선택하시고 Go... 버튼을 눌러들어가보시면 처음에 보여드렸던 모습을 보실 수 있구요...



".NET Client" 깔려있그든... 그러니까 쫌 자세한 메세지를 좀 줘바바... 라고 욕한바가지 해주고...
열심히 MSDN 과 구글링을 했죠...
구글링으론 졸리기만 하고 별 성과없이 시간만...
차라리 함께 설치되어야할 녀석들을 살펴보는 것이 낫겠다싶었죠...ㅋㅋ
설치 파일 생성시 Bootstrapper을 함께 추가해줬다는 생각에 그녀석들을 확인한하고 있었다는 생각이 퍼뜩나서... ㅡㅡ'


VisualStudio 2010 Tools for Office Runtime 을 설치해 주었습니다.




잘 뜨네요...
^^


행복한 고수되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\




Posted by woojja

댓글을 달아 주세요


많은 분들이 COM Addin 에 대한 작업을 하고 테스트를 하시겠지요...
하지만 기본적으로 개발 PC의 VisualStudio 에 대해서는 보안이 적용되지 않습니다.
해서 배포를 하려고 하면...
대략 좌절하시는 분들도 있으리라고 봅니다.

아주아주 희망찬 링크를 하나 올려봅니다.

정신건강에 아주 좋으실 듯 합니다.

Deploying a Visual Studio 2010 Tools for Office Solution Using Windows Installer

영어에 좌절하진 마시길... ^^'

행복한 고수되십시요.



Posted by woojja

댓글을 달아 주세요


1) Process 를 이용해서 Powerpoint 를 실행

    1         Dim MyStartInfo As New Diagnostics.ProcessStartInfo(strFileName)

    2 

    3         Dim MyProcess As New Diagnostics.Process

    4         MyProcess.StartInfo = MyStartInfo

    5         MyProcess.Start()


2) PowerPoint 의 instance 를 생성하여 선언한 변수에 할당

    1 

    2         Dim app As Microsoft.Office.Interop.PowerPoint.Application

    3         Dim pre As Microsoft.Office.Interop.PowerPoint.Presentation

    4 

    5         'app = DirectCast(GetObject("Powerpoint.Application"), Microsoft.Office.Interop.PowerPoint.Application)

    6         app = DirectCast(CreateObject("Powerpoint.Application", ""), Microsoft.Office.Interop.PowerPoint.Application)

    7 

    8         app = New Microsoft.Office.Interop.PowerPoint.Application()

    9 

   10         Pre = app.Presentations.Open(strFileName, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTriStateMixed, 0)


3) 1)을 이용해서 생성한 PowerPoint 의 instance 를 BindToMoniker 를 이용해서 선언한 변수에 할당

    1         Dim MyStartInfo As New Diagnostics.ProcessStartInfo(strFileName)

    2         Dim MyProcess As New Diagnostics.Process

    3 

    4         MyProcess.StartInfo = MyStartInfo

    5         MyProcess.Start()

    6 

    7         Dim pre As Microsoft.Office.Interop.PowerPoint.Presentation

    8 

    9         pre = DirectCast(System.Runtime.InteropServices.Marshal.BindToMoniker(strFileName), Microsoft.Office.Interop.PowerPoint.Presentation)



흠... 그런데 안타까운 것은 위 모든 방법들이 XP 에서는 통용이 되지만
Window7 으로 올라와서는 Error 를 발생한다는 것.
간단한 예제에서는 에러 없이 실행이 되지만 많은 COM 들 속에서는 에러를 발생한다는 것.
하나하나 잡아야 하는 숙제가 있긴 하지만 많은 Case 를 테스트해 나가야하는 숙제가 남아 있다.

각 OS 에 대한, 각 Office Version 에 대한 Test를 진행해야한다.

대표적인 에러는
다음과 같다.


으잉? Monikor 에 대한 에러메세지만 있네...

다른 에러메세지는 캡쳐해서 다시 올리겠습니다.^^'


행복한 고수되십시요...




Posted by woojja

댓글을 달아 주세요


아래에서 다운로드 받으셔요... ㅡㅡ'

Download details: Office 2003 Editions Resource Kit Tools

행복한 고수되셔요...



Posted by woojja

댓글을 달아 주세요

현재 PowerPoint Automation 기능 개발을 하고 있습니다.
(Word, Excel, Outlook 개발은 다 해봤지만... PowerPoint 까지 할 줄은 몰랐네요... ^^
이로써 Office 4대 천황을 모두 섭렵? ㅋㅋ 그래도 너무 어렵네요... ^^)

테스트 코딩은 모두 한 상태이고...
실제 코드 입력과 배포를 생각해 봐야하는데...

그래서 찾아본 페이지 입니다.

Running Solutions in Different Versions of Microsoft Office

VisualStudio 버전별 개발가능한 , Office 버전을 설명해 놓았습니다.

Office System 2003부터 2010 까지 작동가능한 솔루션을 개발하려면
Office 2003 환경에 VisualStudio 2008 로 개발하는 것이 답인 것 같습니다.
(현재 VisualStudio2010 과 Office 2010 32bit 환경에서 개발하고 있습니다.
VisualStudio 2005까지 내리는 것은 좀 그렇고 VS2008을 설치할까 말까 했었거든요...
VirtualMachine 이나 멀티부팅을 생각해 봐야할 것 같습니다. ㅡㅡ
XP 이상 OS 이미지 있으신 분 Hands UP!!! ^^')
)


행복한 하루되십시요.



Posted by woojja

댓글을 달아 주세요

  1. 2011.01.21 19:27

    정환이형, 약속과 다르잖아요. 이 글도 복사가 안되는데요. ^^

  2. 2011.01.21 19:29

    그리고, XP 이상 OS 이미지라고 하셨는데... 이상한데요. 제가 MSDN Subscription 드렸잖아요.

이전버튼 1 2 이전버튼