실제 프로그램 내부에
그리드 형태인 Excel 문서를 Embedding 시키는 방법은 있습니다.
제가 기본적으로 알고 있는 것은..
MS 개발 도구에서는 자연스럽게 Active X형태로 호환이 제대로 됩니다.
하지만, 델파이나.. C++ 빌더에서는 그 기능을 제공하는 컴포넌트를 이용해야 한다라는 겁니다.
아니면, Excel의 파일 구조를 그래로 프로그래밍 하시면 됩니다.
Excel 97 파일 형식은 많이 오픈 된 것으로 알고 있습니다.
또 다른 방법은
델파이이나 빌더에서 사용가능한 컴포넌트를 이용하는 방법입니다.
그런 컴포넌트는 많이 있는 것으로 알고 있습니다.
물론 OLE 형태도 있고.
완전 독립적인 형태도 있는 것으로 알고 있고요
대표적으로
http://www.winsoft.sk/excelcs.htm
라는 사이트를 참고해 보십시오.
검색 잘 하시면.. 쉽게 답을 얻을 수 있습니다.
저도 실제로 프로그래밍 해 보지는 않았지만.
작성된 프로그램을 써 본 적이 있어서.. 답변드립니다.
엑셀 응용 프로그램 없이.. 실제 ....동작되는 것을요...
장성호 님이 쓰신 글 :
: 기본적으로 Excel이 설치되어있지 않는 pc에서
: Excel 통합 문서 형식의 파일을 수정하는것은 매우 어렵습니다.
: 아래 코드도 에러 나구요 당연히 안되구요
:
: 왜냐하면 아래 코드는 Excel을 실행해서
: Excel프로그램에 어떤 처리를 요청하고 결과를 받아가져오는것입니다.
: OLE프로그램을 모두 그런식이죠
:
: 방법1. excel파일의 형식이 통합문서가 아니라면...?
: - xls파일이 콤마(,)로 구분된 xls라던가
: - 탭(\t)으로 구분된 cvs파일이라던가..
: - XML형식으로된 스프레드쉬트형식이라던가?
: - 아니면 html형식이라던가...
:
: 위와같은 형식은 대개 Text형식이므로 문서형식만 잘알면 해당 부분을 쉽게 수정할수 있을것입니다.
:
: 방법2. 통합문서 형식 xls파일인경우...
: --> 일반적인 방법은 없습니다. excel editer를 만들어야 하는데.. 쉽지 않죠
: internet이 되고 고정된 서버를 둘수 있다면...
: 서버에 excel을 편집하는 기능을 만들어 두는 방식으로 해결이 가능할것이구요
:
: 잘모르는데.... 이를 지원하는 spreedsheet 컴포넌트가 있던가 하면 가능하수도..
:
:
: excel이 설치되어있어야 한다고... 고객을 설득하거나 환경을 조성해주는것이 좋을것 같구요
: 아니면 방법1을 이용하세요
: 방법1은 속도도 빨라요
: 방법1의 단점은 Chart나 그림등이 지원 안됩니다. 이를 고려하셔야 하구요
:
: 그럼..
:
:
:
: 이성희 님이 쓰신 글 :
: : 현재 액셀변환하는 소스입니다.
: : 예전에 여기 포럼 게시판에서 찾은 방법으로 하고 있습니다.
: : Variant XLApp;
: : Variant XLWorkbooks;
: 333333333333333333333333333333333333333333333333333333
: : Variant XLWorkbook;
: : Variant XLWorksheet;
: : try
: : {
: : XLApp = CreateOleObject("Excel.Application");
: : }
: : catch(...)
: : {
: : ShowMessage("Excel OLE server not found");
: : return;
: : }
: : XLWorkbooks = XLApp.OlePropertyGet("Workbooks");
: :
: : XLWorkbooks.OleProcedure("Add");
: :
: : // 어플리케이션 내에서 첫번째 워크북을 얻는다.
: : XLWorkbook = XLWorkbooks.OlePropertyGet("Item", 1);
: :
: : // 워크시트들을 관리할 수 있는 오브젝트를 얻는다.
: : XLWorksheet = XLWorkbook.OlePropertyGet("Worksheets");
: : // 첫번째 워크시트를 얻는다.
: : Variant xlSheet = XLWorksheet.OlePropertyGet("Item", 1);
: :
: : xlSheet.OlePropertyGet("Cells").OlePropertySet("_Default", 1,1, "제목");
: : xlSheet.OlePropertyGet("Cells").OlePropertySet("_Default", 2,1, "성명");
: : xlSheet.OlePropertyGet("Cells").OlePropertySet("_Default", 2,2, "주민번호");
: : 위와 같은 형식으로 액셀변환을 하고 있습니다.
: :
: : 문제는 액셀이 설치되어 있지않은 PC에서 액셀변환 오류가 발생합니다.
: : 그리고 내용이 많을경우 속도도 느려지고 가끔 다운도 되는거 같습니다.
: :
: : 혹시 액셀이 설치되어 있지 않아도 변환 방법이 있는지 궁금합니다.
: : 방법을 아시는분은 저에게 많은 가르침 부탁드립니다.
: :
: : 기초가 약해서 그런지 많이 해메고 있습니다.
: :
: : 많은 도움 부탁드립니다.