Witam,
Mój program pobiera dane z pliku Excela i wczytuje je do DBGrida.
ExcelApplication1:=TExcelApplication.Create(Application);
ExcelApplication1.Workbooks.Open(nazwa_pliku,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
//tu jest pętla wczytująca dane - mało istotna
ExcelApplication1.ActiveWorkbook.Close(xldonotsavechanges,nazwa_pliku,0,0);
Tak więc po odczytaniu danych z Excela plik zostaje zamknięty. Podczas zamykania programu nie ma żadnego problemu.
Problem pojawia się w następującej sytuacji
- Uruchamiam Excela
- Otwieram zapisany wcześniej Plik1.xls i dokonuję w nim jakiejś zmiany. Zmian tych na razie nie zapisuję !!!
- Odpalam program w Delphi i wczytuję dane z pliku Excela o nazwie Plik2.xls
- Kiedy zamykam program w Delphi Excel "wisi" cały czas i czeka z okienkiem, czy zapisać zmiany w Plik1.xls
- Program w Delphi się zawiesza
Jak "zwolnić" Excela z poziomu mojego program.
próbowałem:
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Destroy;
i niestety nic nie pomaga. Dziwi mnie trochę, że podczas zamykania program chce zamknąć także Excela pomimo tego, że Plik2.xls uruchomiony z poziomu programu już został zamknięty - "wisi" natomiast Plik1.xls otwarty bezpośrednio z poziomu Excela.
Proszę o pomoc.
Pozdrawiam