Конференция "Corba" » Неполный список книг в Excel 2003 [Delphi, Windows]
 
  • Asail (25.01.07 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 © (26.01.07 10:11) [1]

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

    закрыть первый экземпляр :)
    а зачем нужно именно GetActiveOleObject?
  • Array © (26.01.07 11:06) [2]

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

    а межет CreateOleObject('Excel.Application');
  • Asail (26.01.07 15:25) [3]

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

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


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

    Не годиться...
  • YurikGL © (26.01.07 22:27) [4]
    Что мешает все книги открывать в одном Excel-e ?
  • Asail (27.01.07 01:54) [5]

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

    Пользователь мешает. Открывает книги так, как ему вздумается, а потом предъявляет претензии. Кстати, в более старых версиях такой проблемы не было.
  • umbra © (29.01.07 11:49) [6]

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

    в каких это более старых версиях этого не было?
  • Asail (29.01.07 18:02) [7]
    Может и ошибаюсь (нет возможности проверить), но по-моему в 97/2000 версиях нельзя было открыть несколько экземпляров Excel. Документов (книг) ск-ко хочешь, а апликация только одна.
    Но, даже, если и нет - то как все-таки перебрать ВСЕ ОТКРЫТЫЕ книги?
  • umbra © (30.01.07 11:29) [8]
    почитайте статью http://www.gekko-software.nl/Delphi/art13.htm . Там, правда, о Ворде, но общий принцип изложен. Только поздним связыванием Вы уже не обойдетесь.
 
Конференция "Corba" » Неполный список книг в Excel 2003 [Delphi, Windows]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]