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
[54253] [자답]엑셀 FileOpen이 안됩니다.
박성찬 [] 1992 읽음    2008-08-07 13:50
박성찬 님이 쓰신 글 :
: 아래와 같이 엑셀을 파일을 열고자 하는데
: OLECHECK를 하면서 에러가 발생합니다.
: 무엇이 문제인가요?
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: ExcelApplication1->Connect();
: ExcelApplication1->set_Visible(TDefLCID(),true);
: ExcelApplication1->set_DisplayAlerts(TDefLCID(), true);
: ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Open((wchar_t *)"test.xls"));
: //ExcelWorksheet1->ConnectTo(ExcelApplication1->Worksheets->get_Item((TVariant)1)); //1번째 시트설정
: //ExcelApplication1->Disconnect();
: //ExcelApplication1->Quit();
: }
:
: 에러가 나는 부분을 찾아보니 Excel_2k.h의 아래부분에서 발생합니다.
:   Excel_2k::ExcelWorkbook* __fastcall Open(BSTR Filename/*[in]*/,
:                                            VARIANT UpdateLinks/*[in,opt]*/= TNoParam(),
:                                            VARIANT ReadOnly/*[in,opt]*/= TNoParam(),
:                                            VARIANT Format/*[in,opt]*/= TNoParam(),
:                                            VARIANT Password/*[in,opt]*/= TNoParam(),
:                                            VARIANT WriteResPassword/*[in,opt]*/= TNoParam(),
:                                            VARIANT IgnoreReadOnlyRecommended/*[in,opt]*/= TNoParam(),
:                                            VARIANT Origin/*[in,opt]*/= TNoParam(),
:                                            VARIANT Delimiter/*[in,opt]*/= TNoParam(),
:                                            VARIANT Editable/*[in,opt]*/= TNoParam(),
:                                            VARIANT Notify/*[in,opt]*/= TNoParam(),
:                                            VARIANT Converter/*[in,opt]*/= TNoParam(),
:                                            VARIANT AddToMru/*[in,opt]*/= TNoParam(),
:                                            long lcid/*[in]*/= TDefLCID())
:   {
:     Excel_2k::ExcelWorkbook* RHS;
:     OLECHECK(this->Open(Filename, UpdateLinks, ReadOnly, Format, Password, WriteResPassword,
:                         IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter,
:                         AddToMru, lcid, (Excel_2k::ExcelWorkbook**)&RHS));
:     return RHS;
:   }

문제의 원인을 찾았습니다.
Open할 때 FileName의 데이터타입 및 경로가 문제였습니다.

아래와 같이 수정하니까 잘 동작합니다.
WideString path = "C:\\Program Files\\Borland\\CBuilder6\\Projects\\test.xls";
ExcelApplication1->Connect();
ExcelApplication1->set_Visible(TDefLCID(),true); 
ExcelApplication1->set_DisplayAlerts(TDefLCID(), true);
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Open(path));

+ -

관련 글 리스트
54252 엑셀 FileOpen이 안됩니다. 박성찬 1265 2008/08/07
54253     [자답]엑셀 FileOpen이 안됩니다. 박성찬 1992 2008/08/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.