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

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 2 이전버튼

티스토리 툴바