프로그램상에서 Excel 파일을 열고 싶습니다.
Excel프로그램이 Program Files아래에 깔리지 않고 어디에 깔려있던지 간에
Excel파일을 찾아서 열고 싶습니다. 어떻게 해야 하나요...
전에 위와 같은 질문을 올렸더니
try
Ex := CreateOleObject('Excel.Application');
except
on EOleError do begin
ShowMessage('엑셀이 없네유~');
Exit;
end;
end;
위와 같은 답변을 해 주셨습니다. 제가 알고싶은건 Excel.exe가 있는 경로를
알고싶습니다. 아시는분 계시면 꼭 좀 알려주세요!!! *^^*
그러니까 탐색기에서 .xls 확장자를 가진 엑셀데이타파일을 더블클릭한것과 같은
처리를 하는 것입니다..
아래는 제 소스를 뜯어낸 건데요..
적당히 수정하시면 될겁니다..
그럼 수고하세요..
if ExtractFileExt(SExeName) = '.xls' then begin
iRtnval := ShellExecute(handle, nil, pchar(SExeName), nil, nil, SW_SHOWNORMAL);
case iRtnval of
0 : sMsg :='memory 부족';
ERROR_FILE_NOT_FOUND : sMsg:='file 없음';
ERROR_PATH_NOT_FOUND : sMsg:='directory없음';
SE_ERR_ACCESSDENIED : sMsg:='권한없음';
SE_ERR_ASSOCINCOMPLETE : sMsg:='권한없음1';
SE_ERR_DDEBUSY : sMsg:='DDE연결실패';
SE_ERR_DDEFAIL : sMsg:='DDE연결실패1';
SE_ERR_DDETIMEOUT : sMsg:='DDE연결실패2';
SE_ERR_DLLNOTFOUND : sMsg:='library없음';
SE_ERR_NOASSOC : sMsg:='파일확장자와 연계된 프로그램 없슴';
SE_ERR_OOM : sMsg:='메모리부족';
SE_ERR_SHARE : sMsg:='공유실패';
else sMsg:='기타이유';
end; //end of case
end
else begin
iRtnval := winexec(pchar(SExeName), SW_SHOW);
case iRtnval of
0 : sMsg := '메모리 부족입니다.';
ERROR_BAD_FORMAT : sMsg := '실행할 수 없는 파일 입니다.';
ERROR_FILE_NOT_FOUND : sMsg := '파일을 찾을 수 없습니다.';
ERROR_PATH_NOT_FOUND : sMsg := '경로를 찾을 수 없습니다.';
else sMsg := '기타오류';
end; // end of case
end;
델초보 wrote:
> 프로그램상에서 Excel 파일을 열고 싶습니다.
> Excel프로그램이 Program Files아래에 깔리지 않고 어디에 깔려있던지 간에
> Excel파일을 찾아서 열고 싶습니다. 어떻게 해야 하나요...
>
> 전에 위와 같은 질문을 올렸더니
>
> try
> Ex := CreateOleObject('Excel.Application');
> except
> on EOleError do begin
> ShowMessage('엑셀이 없네유~');
> Exit;
> end;
> end;
> 위와 같은 답변을 해 주셨습니다. 제가 알고싶은건 Excel.exe가 있는 경로를
> 알고싶습니다. 아시는분 계시면 꼭 좀 알려주세요!!! *^^*