Witam
Jak zrobic cos takiego:
- sprawdzic czy jest zainstalowany Excel (z poziomu programu ofcoz)
- uruchomic Excel'a jesli jest
- wkleic zawartosc schowka w excelu
moze ktos to robil?
Pozdrawiam ;-)
Witam
Jak zrobic cos takiego:
moze ktos to robil?
Pozdrawiam ;-)
1 i Od razu 2 :P)
uses shellapi
if fileexists('C:\Program Files\Microsoft Office\Office10\exel.exe') then ShellExecute(Handle, 'open', :\Program Files\Microsoft Office\Office10\exel.exe', nil, nil, SW_SHOWNORMAL) else showmessage('brak EXELA !!!');
1 i Od razu 2 :P)
uses shellapi
if fileexists('C:Program FilesMicrosoft OfficeOffice10exel.exe') then ShellExecute(Handle, 'open', :Program FilesMicrosoft OfficeOffice10exel.exe', nil, nil, SW_SHOWNORMAL) else showmessage('brak EXELA !!!');
a u mie to nie dziala a excela mam. zdziwiony? [mam wersje nie Office10 (XP) a Office9 (2000)]
niestety, trzebaby przeszukiwać wszystkie dyski, katalogi w poszukiwaniu tego pliku. Więc lepszym sposobem byloby poszukanie w rejestrze klucza odpowiadajacego za excela, tam też powinien byc jego katalog Klucz HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Wersja offica np. 9.0\Excel\InstallRoot i wartość Path + 'Excel.exe' będzie uruchamiala Excela. O rejestrach jest artykuł w dziale delphi to doczytaj i będziesz miał :)
Jeszcze jedno. pisze się EXCEL nie EXEL. Twój kod podany wyzej nie działałby nawet u ciebie! i pamiętaj dawaj dwa backslashe a nie jeden!!
[Dopisane]
Nawet zrobilem specjalnie do tego kodzik (powinien dzialac)
uses ShellAPI, Registry;
var Reg: TRegistry;
begin
Reg := TRegistry.Create; //tworzymy obiekt do rejestru
Reg.RootKey := HKEY_LOCAL_MACHINE;
//test offica 95
Reg.OpenKey('Software\Microsoft\Office\7.0\Excel\InstallRoot', True);
if Reg.ReadString('Path') '' then ShellExecute(Handle, 'open', PChar(Reg.ReadString('Path') + 'excel.exe'), nil, nil, SW_SHOW);
Reg.CloseKey;
//test offica 97
Reg.OpenKey('Software\Microsoft\Office\8.0\Excel\InstallRoot', True);
if Reg.ReadString('Path') '' then ShellExecute(Handle, 'open', PChar(Reg.ReadString('Path') + 'excel.exe'), nil, nil, SW_SHOW);
Reg.CloseKey;
//test offica 2000
Reg.OpenKey('Software\Microsoft\Office\9.0\Excel\InstallRoot', True);
if Reg.ReadString('Path') '' then ShellExecute(Handle, 'open', PChar(Reg.ReadString('Path') + 'excel.exe'), nil, nil, SW_SHOW);
Reg.CloseKey;
//test offica XP
Reg.OpenKey('Software\Microsoft\Office\10.0\Excel\InstallRoot', True);
if Reg.ReadString('Path') '' then ShellExecute(Handle, 'open', PChar(Reg.ReadString('Path') + 'excel.exe'), nil, nil, SW_SHOW);
Reg.CloseKey;
Reg.Free;
end;
Nie wiem jaki jest klucz dla Office XP, dałem 10.0 bo tak numerowane byly dla kolejnych wersji offica. Niech ktos to sprawdzi, ok?