Microsoft MVP성태의 닷넷 이야기
글쓴 사람
진우
홈페이지
첨부 파일






첨부된 그림처럼 그리드 형태의 응용프로그램과 엑셀을 동기화(?) 하고싶습니다.
엑셀에서 셀값 입력, 시트 추가/변경 등을 하면 응용프로그램에서도 똑같이 셀값이 입력, 시트 추가/변경 되고
반대로 응용프로그램에서 값변경, 시트 추가/변경을 하면 엑셀에 똑같이 적용되게 하고싶습니다.

그러나 응용프로그램에서 발생하는 사용자 이벤트는 제가 사용방법을 알고있는데
엑셀에서 발생하는 사용자 이벤트는 어떻게 통지받고 콜백 등록하는지 방법을 모르겠습니다.
궁극적으로 엑셀 c++ COM 을 사용해야하는건지 혼란스럽습니다.
검색중에 XLL 이라는걸 알게 되었는데 이것은 엑셀 사용자 정의 함수(UDF) 인것같습니다. 제가 원하는게 아닌것같은데
이것도 아닌건지 맞는건지 모르겠습니다.

정리하자면
엑셀 C++ COM 개체를 직접 사용해야하는건지 아니면 다른 방법이 있는건지 너무 궁금합니다.
읽어주셔서 감사합니다!








[최초 등록일: ]
[최종 수정일: 7/28/2020]


비밀번호

댓글 작성자
 



2020-07-28 10시53분
글쎄요, 엑셀 측은 아마도 VSTO로 만들어야 제어가 되지 않을까 싶은데요.

C# - Excel 시트에 윈도우 폼 기능을 추가하는 방법
; https://www.sysnet.pe.kr/2/0/10998

아니면, Add-in으로 만들어 엑셀에 등록하는 식으로 만들어야 할 것입니다. 만약 아래의 글처럼, Excel Application을 COM 객체로 직접 만들어 제어하는 경우,

C# - Excel(을 비롯해 Office 제품군) COM 객체를 제어 후 Excel.exe 프로세스가 남아 있는 문제
; https://www.sysnet.pe.kr/2/0/11997

Worksheet 개체 단위로 Change 이벤트를 걸어두면 될 것입니다.
정성태
2020-07-29 03시59분
[진우] 성능때문에 c++ 을 생각하고있었는데 결국은 c# 을 사용해야하는건가 보군요
알겠습니다 링크 잘 참조하겠습니다 답변 감사합니다 ^^

[guest]
2020-07-29 04시28분
@진우 C++로 하셔도 됩니다. (물론, 더 복잡해질 것입니다. ^^;)
정성태
2020-07-29 04시40분
[진우] 네 c++ 은 com 에 접근하는거라 복잡하더라구요..
검색을 해보면 모두 COM 과 관련된 2000년대의 오래된 자료들뿐인데 VS2015나 VS2017 VC++ 에서 샘플소스들을 사용해보면 에러만 엄청나게 뜹니다..
vs2005, 2008 까지는 자료가 좀 있더라구요
그래서 MS 에서 c++ 로 엑셀 컨트롤하는 기능을 없애고 닷넷 기반으로만 사용하도록 한건지 도무지 알수가 없어서 혼란스러웠습니다.
시간을 두고 차근차근 공부하면서 해야할것같습니다
하지만 너무 오래걸리면 말씀대로 c# VSTO를 사용해야할것같네요
답변 감사합니다 ^^

[guest]
2020-07-29 09시51분
@진우 닷넷만 사용하도록 한 것은 아닙니다. 오히려 전체적인 기반은 C++을 위한 COM이지만 그것을 C#에서 쉽게 사용할 수 있기 때문에 대체로 그렇게 접근하는 것이 일반화된 것입니다.

그리고, 성능상 C++로 하신다고 했는데 사실 COM 개체를 사용하는 측에서 보면 C++이나 C#이나 그렇게 크게 차이나는 것은 아닙니다. (게임 프로그래밍처럼 fps를 다투는 상황이라면 모를까... 서로 동기화 시키는 정도의 이벤트 반응에는 거의 차이가 없다고 봐도 무방할 것입니다.)
정성태
2020-07-30 04시34분
[진우] 네 말씀대로 c++ 보다는 c# 을 많이 쓰다보니 c# 을 쓰는 방법만 있는걸로 제가 착각했던것같습니다.
지금 엑셀과 다른 응용프로그램을 연동하는게 목표인데요
파일매핑오브젝트를 통해 프로세스간 통신하게끔 하려는데 아무래도 c# 보단 win32 api 를 직접 쓰는게 낫지않을까 싶어서요
어떻게 하는게 최선의 방법인지 알아보고만 있는중입니다.
^^


[guest]

... [91]  92  93  94  95  96  97 
NoWriterDateCnt.TitleFile(s)
183정성태5/9/20059467    답변글 [답변]: // 꼭쫌 답변해 주세요~~~클라이언트 서버 ... 내용, 이점 들...
180최성우5/7/20059912[Q] POST 형식의 데이터 훅킹?
182정성태5/9/200510570    답변글 [답변]: [Q] POST 형식의 데이터 훅킹?
190최성우5/10/20059586        답변글 [답변]: [답변]: [Q] POST 형식의 데이터 훅킹?
177최정희5/4/200510113네트워크 케이블의 연결상태
178정성태5/4/200510223    답변글 [답변]: 네트워크 케이블의 연결상태 [1]
188최정희5/10/20059694        답변글 [답변]: [답변]: 네트워크 케이블의 연결상태
189정성태5/10/20059888            답변글 [답변]: [답변]: [답변]: 네트워크 케이블의 연결상태 [2]
191최정희5/11/20059546                답변글 [답변]: [답변]: [답변]: [답변]: 네트워크 케이블의 연결상태 [1]
175안연준5/3/20059932IE 제어에 대한 궁금 증 ㅡ,.ㅡ;;
179정성태5/4/200510583    답변글 [답변]: IE 제어에 대한 궁금 증 ㅡ,.ㅡ;;
168안연준5/2/20059961[Database] Connection Error파일 다운로드1
169정성태5/2/200510122    답변글 [답변]: [Database] Connection Error
170안연준5/2/20059672        답변글 [답변]: [답변]: 계속 에러가 똑같애요
171정성태5/2/200510398            답변글 [답변]: [답변]: [답변]: 계속 에러가 똑같애요
172안연준5/2/200510165                답변글 [답변]: [답변]: [답변]: [답변]: 계속 에러가 똑같애요파일 다운로드1
173정성태5/2/20059914                    답변글 [답변]: [답변]: [답변]: [답변]: [답변]: 계속 에러가 똑같애요
174안연준5/3/20059876                        답변글 [답변]: [답변]: [답변]: [답변]: [답변]: [답변]: 계속 에러가 똑같애요
165장희석4/22/200510495[질문]ASP에서 ATL 서버 컴퍼넌트로 바이너리 데이타 전달하기
167정성태4/29/200510329    답변글 [답변]: [질문]ASP에서 ATL 서버 컴퍼넌트로 바이너리 데이타 전달하기
160카심4/21/20059920Internet Explorer 에서의 닷넷 Smart Client 개발
163정성태4/22/20059858    답변글 [답변]: Internet Explorer 에서의 닷넷 Smart Client 개발
159신대철4/21/20059639자동 로긴 프로그램
162정성태4/22/20059630    답변글 [답변]: 자동 로긴 프로그램
166신대철4/22/20059326        답변글 [답변]: [답변]: 자동 로긴 프로그램파일 다운로드1
157이용휘4/20/20059322w3ip를 통해서 윈도우 미디어 화을을 올려놓을 서버..
... [91]  92  93  94  95  96  97