C# Excel 2007 추가기능(AddIn) 만들기

 

엑셀 리본 컨트롤에 새로운 탭을 만들어서, 사용자가 선택한 셀들의 합과 평균을 메시지 창에 보여주는 작업을 진행하겠습니다.

 

 

 

우선 프로젝트를 하나 생성하겠습니다. 설치된 테블릿에서 Office를 선택후 Excel 2007 추가 기능을 선택 후 솔루션 이름을 “AboutExcelAddIn”으로 생성합니다.

 

 

 

생성 후 프로젝트에서 오른쪽 마우스를 클릭하여 새 항목 추가를 클릭합니다. 리본(비주얼 디자이너)를 선택하여 생성합니다.

 

 

 

리본을 생성 후에 솔루션 탐색기를 확인해보시면 아래와 같습니다.

 

 

 

 

먼저 Ribbon1.cs를 클릭합니다. 아래의 이미지와 같이 ButtonGroup Sum, Avg Button을 생성합니다.

 

 

Sum Name btnSum, Avg Name btnAvg로 지정합니다. 더블 클릭하여 버튼이 클릭이 되었을 때 이벤트들을 등록합니다.

 

ThisAddIn 코드를 보시면 기본적으로 아래와 같은 코드가 자동으로 추가되어 있는 것을 확인하실수 있습니다.

 

namespace AbooutExcelAddIn
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            
        }
 
        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
           
        }
 
        #region VSTO generated code
 
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}

 

 

Ribbon 개체를 생성 후 Sum Avg 버튼에 대한 Click 이벤트를 등록하였습니다. Application 개체를 통해서 Excel에 액세스 할 수 있습니다. 아래의 코드에서는 사용자가 선택한 Cell들을 가져오는 작업을 진행하였습니다. dynamic이기 때문에 Intelligence를 확인 하실 수 없습니다. 구글링을 통해 API를 검색하시거나 디버깅해서 어떤 값들이 있는지 확인하셔야 합니다.

 

 

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Tools.Ribbon; using Excel = Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Excel; namespace AbooutExcelAddIn {     public partial class Ribbon1     {         void btnAvg_Click(object sender, RibbonControlEventArgs e)         {             double sum = 0;             int count = 0;             Application app = Globals.ThisAddIn.Application;             foreach (var item in app.Selection.Cells)             {                 string text = item.FormulaLocal;                 double value = 0;                 if (double.TryParse(text, out value))                 {                     sum += value;                     count++;                 }             }             double avg = sum / count;             System.Windows.Forms.MessageBox.Show(avg.ToString());         }         void btnSum_Click(object sender, RibbonControlEventArgs e)         {             double sum = 0;             Application app = Globals.ThisAddIn.Application;             foreach (var item in app.Selection.Cells)             {                 string text = item.FormulaLocal;                 double value = 0;                 if (double.TryParse(text, out value))                     sum += value;             }             System.Windows.Forms.MessageBox.Show(sum.ToString());         }     } } 

Ribbon을 추가하는 작업을 하지 않았는데, 어떻게 추가되었는지 궁금하신분들은, Ribbon Designer Class를 확인해보시면 답이나옵니다.

 

 

완료되었습니다. 컴파일을 진행 하신후 실행하게 되면 아래와 같이 동작하는 Excel 추가기능을 작성하신겁니다.

 

 

 

Excel 옵션->추가 기능에 가보시면 작성한 추가 기능이 등록된 것을 확인 할 수 있습니다.

 

 

 

프로젝트 파일 :

AbooutExcelAddIn.zip

 

결혼하는데 첫단계라고 하는

상견례를 마쳤어요

굿모닝

 

 

저희 집은 일산이고

남자친구 집은 군포라~~

 

중간지점인 영등포에 위치한

선유한정식에 예약을 했어요

 

 

상견례 자리라.. 사진을 못찍어서

선유한정식 홈페이지에서

캡쳐해왔어요...ㅠㅠ

 

 

저희는 선유 스페셜 D로

8명 예약했습니다.

 

상견례 전날 부터 엄청 떨려서

잠도 설쳤는데....

 

다행히 양가 부모님들께서 편하게 해주셔서

무사히 잘 끝냈 수 있었던거 같아용

하트3

 

 

처음에 단호박죽 이랑 백김치가 셋팅 됐었고

다먹기 전에 샐러드, 계절냉채(해파리냉채), 탕평채, 궁중 잡채,

쭈꾸미 볶음, 생선회, 연어크레페(?), 삼색전, 불고기가 나왔어요~~

 

저희 아빠가 회를 좋아하셔서

남자친구가 회를 따로 주문해서 크게

한접시가 따로 나왔어요~

 

추가 주문한 회는 3만원이였네용

 

다먹어 갈때쯤 계절탕(조랭이떡에 멸치육수? 약간 비린맛), 생선튀김,

제육보쌈, 황태구이, 버섯탕수육이 나와서

먹을 음식이 줄서 있었죠

 

열심히 먹고 있을 무렵

진지 드릴까요? 라고 물으셔서

네~라고 하니

밥, 된장찌개, 굴비구이, 미나리나물, 건새우볶음, 장조림, 김치

이렇게 셋팅되었어요.

 

 

후식으론 수박과 오미자차가 나왔어요~

후식을 서빙해 주시던 분이

원래 서빙해 주시던 분이 아니라

주방에서 일하시는 분이 급하게 나오신것 같았어요..

 

그래서 그런지...

오미자차를 주시다가 제 등에 촤악~!!ㅠㅠ

 

기분 좋게 마무리 하고 싶었으나...

마지막에 그런일이 있었네요 ㅜㅜ

 

상견례 자리라... 화도 못내고...

괜찮다고 했네요;;;ㅋㅋ

 

음식들은 어떤 맛이었는지 정확히 기억이 나진 않앗지만

대체적으로 SoSo~

 

아무튼 상견례를 잘 맞친것 같아

기분 좋게 하루를 보냈네요

홧팅2

 

 

'♡Wedding♥' 카테고리의 다른 글

[D-168] 허니문 예약(발리)  (0) 2014.08.09
[D-141] 오르시아에서 예물 맞췄어용  (0) 2014.08.09

지난주 토요일

오픈프라이즈 앱에서 당첨된

미아베라 주얼리카페에 다녀왓어요

 여행

 

 

미아베라는 신사에 위치해 있고

건물 1층에서 카페를 운영하고

위층들은 주얼리 디자인 회사라고 해요~

 

 

 

외부 모습이 깔끔하고

귀엽게 꾸며져 있었어요 ㅋㅋ

 

 

 

 

내부 모습은 아늑하면서도

 주얼리 카페라는

이름만큼

블링블링한 주얼리들이

진열되어 있더라구요~~ 

 

 

 

 

이렇게 블로그에 올려도

되는건지... 모르겠지만

일단.. 올리도록...

 

 

 

디자인 때문에

문제가 발생한다면...말씀해주세요

내리겠습니다.

응응

 

 

 

테이블이 몇개 없어서

더 아늑해 보이기도 하는 것 같아요

 

 

 

 

미아베라가 나의봄 이라는 뜻이래용ㅋㅋ

미아베라 소개가 써있는

뒷쪽엔 각종 술 메뉴들이~~ㅋㅋ

 

 

 

 

안주류가 눈에 확 들어왔지만

우린 쿠폰으로 먹어야 하니까~~

 

 

주문하러 카운터에 가면

메뉴가 붙어있어용ㅋㅋㅋ

 

제가 당첨된 쿠폰은

피자 + 건강 샐러드 + 빙수

쿠폰이여서

피자와 빙수를 선택할 수 있어요

 

피자는 핫 칠리 쉬림프 피자

빙수는 망고 빙수로 주세요~~

샤방

 

 

주문을 하면 얼마 안지나

건강 샐러드와 기본 세팅을

해줍니다.ㅋㅋ

 

 

 

맛있겠죠?

닭가슴살도 약간 들어있고

치즈, 달걀, 올리브, 야채, 토마토가

들어있어요 ㅋㅋ

 

 

 

 

전 평소 올리브를 좋아하지

않는 편인데

건강 샐러드에 들어가 있는건

맛이 괜찮더라구요

 

발사믹 소스때문인가??

 

 

 

 

샐러드를 흡입하고 있으면

주문한 피자가 나와요~~

 

그렇게 안매워 보이죠?

한입 먹는 순간 핫이 맞구나 싶었어요 ㅋㅋ

 

저희는 평소 매운걸 좋아해서 그렇게 맵다고

느끼진 못했지만 매운향이 나요

 

남자친구는 먹다가

피자에서 고추장 맛이 난다고....ㅋㅋ

 

 

 

 

물만 마시려 했지만

피자 먹다보니 음료가 땡겨서

레몬에이드 한잔 주문했어요

 

가격이 7000원 씩이나 하는 레몬에이드...

 

빙수가 있다는걸 잊은채 주문후에

후회했어요....ㅠㅠ

 

 

 

 

짜잔~~ 그래도 7000원 값은 하는것 같죠?

일반 카페에서 파는 가루 레몬에이드가 아닌

진짜 레몬으로 만든거 였어요

 

먹으면서 달지 않아 마음에 들었어요

오키

 

 

마지막으로 망고 빙수!!

위의 초콜렛은 너무 달아

먹는 걸 포기 했어요....

 

망고는 생망고와 그냥 망고 맛 과일 같은게

섞여 있어요

 

생망고는 제 입맛에 안 맞아서...

 

결국 반 이상 남기고 왔어요..ㅜㅜ

 

그래도 쿠폰으로 먹어 이렇게 많은 음식을

7000원에 먹었네요>.<

 

건강 샐러드는 정말정말 강추!!

 

서비스와 직원의 태도가 정말 맘에 드는 카페였어요

HAAA

 

 

+ Recent posts