C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51898] Re:[질문]액셀 설치되지 않은 PC에서 액셀변환하기
장성호 [nasilso] 1912 읽음    2008-01-14 13:02
기본적으로 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에서 액셀변환 오류가 발생합니다.
: 그리고 내용이 많을경우 속도도 느려지고 가끔 다운도 되는거 같습니다.
:
: 혹시 액셀이 설치되어 있지 않아도 변환 방법이 있는지 궁금합니다.
: 방법을 아시는분은 저에게 많은 가르침 부탁드립니다.
:
: 기초가 약해서 그런지 많이 해메고 있습니다.
:
: 많은 도움 부탁드립니다.

+ -

관련 글 리스트
51897 [질문]액셀 설치되지 않은 PC에서 액셀변환하기 이성희 1309 2008/01/14
51908     Re:[질문]액셀 설치되지 않은 PC에서 액셀변환하기 슬.강슬기 1969 2008/01/15
51898     Re:[질문]액셀 설치되지 않은 PC에서 액셀변환하기 장성호 1912 2008/01/14
51900         Re:Re:[질문]액셀 설치되지 않은 PC에서 액셀변환하기 김문제 2735 2008/01/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.