Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с Excell в D7 срочно [D7, WinXP]


Varf ©   (2006-10-19 11:33:00) 

Помогите плз!!!
проблема такая:
нужно из excell файла дернуть некуюинфу и закрыть!!(возможно из нескольких файлов)
создаю excell application через вкладку servers (в таком виде):
    ExcelApplication1:= TExcelApplication.Create(self);
  ExcelApplication1.Connect;
  exactive:=true;
  for iFileID := 0 to iNumFiles - 1 do begin
//    filename:= OpenDialogInFile.Files.Strings[iFileID];
   WorkBook:=ExcelApplication1.Workbooks.Open(filename[iFileID], EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Emp tyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,lcid);
   Worksheet:=Workbook.Worksheets.Item['Лист1'] as _Worksheet;

все работает замечательно!!!
но если подцепленно несколько файлов закрываться не хочет!!!
закрывает только 1 экземпляр excell а остальные остаются(закрываю так):
for iFileID :=0  to iNumFiles-1 do begin
     WorkBook.Close(EmptyParam,filenameiFileID],EmptyParam,lcid);
   end;
   ExcelApplication1.Disconnect;
   ExcelApplication1.Destroy;

выдает: Project .... raised exception class EOleException with message : Вызванный объект был отключен от клиентов!


Varf   (2006-10-19 13:53:00) [1]

Все разобрался!!! все оказалось как всегда просто!!!
извиняюсь!!! Спасибо!!!!


Varf   (2006-10-19 13:46:00) [2]


> EvS

и ваш вариант что то же ни к чему хорошему не привел!!!


Varf   (2006-10-19 13:41:00) [3]


> Dmitrij_K

Смысл уловил но как реализовать че то не пойму!!


EvS   (2006-10-19 12:28:00) [4]

for i:=ExcelApplication1.Workbooks.Count-1 downto 0 do ExcelApplication1.Workbooks[i].Close(0);


umbra   (2006-10-19 12:07:00) [5]

а чего это Вы пытаетесь одну и туже книгу закрыть несколько раз?


Dmitrij_K   (2006-10-19 11:52:00) [6]

А ты не думал что
for iFileID :=0  to iNumFiles-1 do begin
    WorkBook.Close(EmptyParam,filenameiFileID],EmptyParam,lcid);
  end;

при закрытии одного остается открытыми на 1 меньше?
если их всего было 2 то после закрытия 1-го, 2-ой становится 1-ым и его закрывать надо как 1-ый


Varf   (2006-10-19 11:47:00) [7]


> Dmitrij_K   (19.10.06 11:41) [1]
> while WorkBook.Count<>0 do WorkBook.Close(0);


спасибо конечно... но Count - undeclared!!!
если это стандартное то наверно что то забыл в Uses закинуть??? а что???


Dmitrij_K   (2006-10-19 11:41:00) [8]

while WorkBook.Count<>0 do WorkBook.Close(0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо