Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.14;
Скачать: CL | DM;

Вниз

Неполный список книг в Excel 2003   Найти похожие ветки 

 
Asail   (2007-01-25 23:16) [0]

Столкнулся с такой проблемой:
нужно перебрать все открытые Workbooks. Задача вроде тривиальная, но в Excel 2003 столкнулся с тем, что если несколько раз запустить приложение Excel, то получается добраться только до книг из первого запущенного приложения. Привожу код:

ListBox.Clear;
 try
   XL := GetActiveOleObject("Excel.Application");
 except
   ShowMessage("Can""t connect to the opened excel application!");
   Exit;
 end;
 try
   for i := 1 to XL.Workbooks.Count do
     ListBox.Items.Add(XL.Workbooks[i].FullName);
 finally
   XL := Unassigned;
 end;

Пример последователности операций для демонстрации трабла:
1. Открываем 1-й экземпляр Excel
2. Открываем 2 книги (Book1 & Book2)
3. Открываем 2-й экземпляр Excel
4. Открываем в нем еще 2 книги (Book3 & Book4)
5. Запускаем мою прогу и получаем в ListBox: Book1,Book2.
Вопрос как добраться до Book3 и Book4?
Thanks


 
umbra ©   (2007-01-26 10:11) [1]


> Вопрос как добраться до Book3 и Book4?

закрыть первый экземпляр :)
а зачем нужно именно GetActiveOleObject?


 
Array ©   (2007-01-26 11:06) [2]


> XL := GetActiveOleObject("Excel.Application");

а межет CreateOleObject("Excel.Application");


 
Asail   (2007-01-26 15:25) [3]


> а межет CreateOleObject("Excel.Application");

А чем это поможет? Нужно подключиться к уже запущенному экземпляру, не запуская нового.


> закрыть первый экземпляр :)

Не годиться...


 
YurikGL ©   (2007-01-26 22:27) [4]

Что мешает все книги открывать в одном Excel-e ?


 
Asail   (2007-01-27 01:54) [5]


> Что мешает все книги открывать в одном Excel-e ?

Пользователь мешает. Открывает книги так, как ему вздумается, а потом предъявляет претензии. Кстати, в более старых версиях такой проблемы не было.


 
umbra ©   (2007-01-29 11:49) [6]


> в более старых версиях такой проблемы не было

в каких это более старых версиях этого не было?


 
Asail   (2007-01-29 18:02) [7]

Может и ошибаюсь (нет возможности проверить), но по-моему в 97/2000 версиях нельзя было открыть несколько экземпляров Excel. Документов (книг) ск-ко хочешь, а апликация только одна.
Но, даже, если и нет - то как все-таки перебрать ВСЕ ОТКРЫТЫЕ книги?


 
umbra ©   (2007-01-30 11:29) [8]

почитайте статью http://www.gekko-software.nl/Delphi/art13.htm . Там, правда, о Ворде, но общий принцип изложен. Только поздним связыванием Вы уже не обойдетесь.



Страницы: 1 вся ветка

Текущий архив: 2010.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1282119287
A_Ton
2010-08-18 12:14
2010.11.14
Запись типизированных файлов больше 2 гиг


2-1281704590
Axel54
2010-08-13 17:03
2010.11.14
Запись инфомации по помещению в БД


15-1280704083
Германн
2010-08-02 03:08
2010.11.14
Win 7. №2


2-1282109949
03111978
2010-08-18 09:39
2010.11.14
Вертикальное расположение заголовков


15-1280521768
Юрий
2010-07-31 00:29
2010.11.14
С днем рождения ! 31 июля 2010 суббота