고객 요청 중에 항상 데이터를 엑셀로 다운 받기나 업로드 시키는 기능을 원하시기 때문이지요.
저는 C#.NET 으로 Windows Forms응용 프로그램을 개발할때 ListView에서 있는 내용을 엑셀로 저장할 수 있게 해달라는 요청이 있어서
처리를 하게 되었습니다.
Excel 프로그래밍을 하다보면 아마도 제일 이상한 부분이 MSDN을 참고해서 프로그래밍을 해보면 Excel 프로세스가 죽지를 않을 겁니다.
이 문제에 대해서는...
유경상님의 블로그에 잘 나와 있습니다.
유경상님 블로그 : http://www.simpleisbest.net/archive/2005/05/31/156.aspx?Pending=true
"C# 에서 Excel 프로세스를 종료하려면 명시적으로 COM 객체 참조를 해제 해주어야 한다."고 말씀을 하시는군요. ^^
그리고 엑셀에서 보면. 셀 서식이라는 부분이 있습니다.
예를 들어 10000 이라는 숫자값을 통화 서식을 지정하면 \10,000 이런식으로 표시가 되는 기능 말이지요.
이것을 프로그래밍으로 사용자 지정 서식을 이용해서 쉽게 사용할 수 있는 방법을 알려 드리겠습니다.
Excel 프로그래밍으로 서식을 수정할 때에는 Excel.Range.NumberFormat 이라는 속성이 사용 됩니다.
그리고 그 속성에 원하는 서식의 형태를 지정해 주면 됩니다. 여기서는 그 서식의 형태를 쉽게 찾는 방법을 알려 드리겠습니다.
아래와 같이 "20090811" 라는 값을 셀에 입력을 합니다.
그리고 나서 셀 서식을 통화로 수정을 해 보겠습니다.
그리고 나면 아래 그림과 값이 "20090811" 라는 값이 "\20,090,811" 값으로 표시가 됩니다. (값은 그대로이고 서식만 바뀐겁니다.)
이제 저렇게 설정한 서식만 알면 우리도 프로그래밍에서 서식을 지정할 수 있겠지요. 그래서 다시한번 셀 서식 화면을 열어봅니다.
그리고 셀서식 - 표시형식 - 범주:사용자 지정을 보게 되면 형식란에 저희가 찾는 사용자 지정 서식이 보입니다. 바로 이렇게 말이지요. "\#,##0" 이 셀 서식을 프로그래밍 할 때.
Excel.Range.Value2 = "20090811";
Excel.Range.NumberFormat = "\#,##0"; 이렇게 지정해 주시면 통화 형식의 서식이 지정 되는 겁니다.
사용자 지정 서식 확인하기 참 쉽죠잉~ ^^
마지막으로 Excel 관련 MSDN 참조 url을 알려 드립니다.
1. 닷넷 개발자 관점에서 파악한 Excel 개체 모델
2. C# 닷넷을 사용하여 Excel에 대한 이벤트 처리 방법
그럼 이제 말복도 지났고 얼른 시원한 가을이 오길 바라면서 이만... ^^
댓글
댓글 리스트-
작성자[RIAWORLD] 작성시간 09.08.14 제가 이 아티클에 상당한 공헌을 했습니다. 이렇게 묻어가는거야
-
답댓글 작성자남처리 작성자 본인 여부 작성자 작성시간 09.08.14 풉...
-
작성자심재운 작성시간 09.08.14 웹에도 저런 기능이 있는데... ^ ^ http://aspdotnet.tistory.com/entry/datagrid-의-엑셀-쉬트-mos-number-format-설정하기
-
답댓글 작성자남처리 작성자 본인 여부 작성자 작성시간 09.08.15 형님은 새글에 댓글을 달지 않으시면 손가락에 가시 돋으시죠? ㅋㅋ
-
답댓글 작성자심재운 작성시간 09.08.17 댓글 1위라도 해야지.ㅋㅋㅋㅋ