Excel

0

Witam

Jak zrobic cos takiego:

  1. sprawdzic czy jest zainstalowany Excel (z poziomu programu ofcoz)
  2. uruchomic Excel'a jesli jest
  3. wkleic zawartosc schowka w excelu

moze ktos to robil?

Pozdrawiam ;-)

0

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 !!!');

0

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1