Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

Снова про Excel   Найти похожие ветки 

 
klerk   (2004-10-01 10:52) [0]

Вчера не получилось разобраться:(
Нужно в Combobox загрузить имена всех открытых файлов Excel.
На форме: Excelapp1, ExcelWorkBook1, Button, Combobox.
Делаю так:

Combobox1.clear;
ExcelApplication1.ConnectKind:=ckRunningInstance;
ExcelApplication1.Connect;
//ExcelApplication1.Workbooks.Item[1].Name;

if  ExcelApplication1.Workbooks.Count=0 then

       Combobox1.Items.Add("нет")

else
       for I := 1 to ExcelApplication1.Workbooks.Count do

               Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
             

finally
ExcelApplication1.Disconnect;

Так он загружает только одно имя, хотя открыто несколько.


 
YurikGL ©   (2004-10-01 10:58) [1]

Я тебе там ответил

> klerk   (30.09.04 16:29) [10]

Попробуй что-нибудь типа

try
i:=1;
while true do begin
Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
inc(i);
             end;
except
end;

Когда дойдет до конца будет исключение...

Хотя извращение это


 
klerk   (2004-10-01 11:32) [2]

Всё равно видит только одну книгу:(


 
YurikGL ©   (2004-10-01 12:10) [3]


> klerk   (01.10.04 11:32) [2]

а с каким ексепшеном вылетает?


 
YurikGL ©   (2004-10-01 12:11) [4]

У меня такое впечатление, что ты подсоединяешься к какому-то другому екселю. Попробуй вывести в него что-нибудь и посмотри в какое приложение выводит.


 
Леприкон ©   (2004-10-01 12:31) [5]


procedure TForm1.Button1Click(Sender: TObject);
var Excel:ExcelApplication;
   i:integer;
begin
 try
   Excel:=GetActiveOleObject("Excel.Application") as ExcelApplication;
   if Excel=nil then Abort;
   ComboBox1.Items.Clear;
   for i:=1 to Excel.Workbooks.Count do
     ComboBox1.Items.Add(Excel.Workbooks.Item[i].Name);
   ComboBox1.ItemIndex:=0;
 finally
   Excel:=nil;
 end;
end;


 
klerk   (2004-10-01 12:50) [6]

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, OleServer, Excel97, ComObj, ActiveX;

procedure TForm1.Button1Click(Sender: TObject);
var
Excel:ExcelApplication;
i:integer;

begin
Memo1.Lines.Clear;

try
  Excel:=GetActiveOleObject("Excel.Application") as ExcelApplication;

  if Excel=nil  then
  Memo1.Lines.Add("НЕТ")

  else

  for i:=1 to Excel.Workbooks.Count do
    Memo1.Lines.Add(Excel.Workbooks.Item[i].Name);

finally
  Excel:=nil;

end;

end;

Memo1 пустое...


 
Леприкон ©   (2004-10-01 12:52) [7]

Наверное какой то неправильный эксель... и наверное он делает неправильные книги. :)


 
YurikGL ©   (2004-10-01 13:03) [8]

на> YurikGL ©   (01.10.04 12:10) [3]
> YurikGL ©   (01.10.04 12:11) [4]
что говорит?


 
YurikGL ©   (2004-10-01 13:13) [9]


> klerk

Слушай, а ты книги с листами не путаешь?


 
Леприкон ©   (2004-10-01 13:22) [10]


> YurikGL ©   (01.10.04 13:13) [9]

врятли, ибо

> Нужно в Combobox загрузить имена всех открытых файлов Excel.


 
klerk   (2004-10-01 13:36) [11]

Ничего не говорит.
Если использовать klerk   (01.10.04 12:50) [6], то просто мемо очищает, но потом вообще ничем не заполняет.

А если klerk   (01.10.04 10:52) , то находит только одну книгу из нескольких открытых.


 
YurikGL ©   (2004-10-01 13:43) [12]


> Ничего не говорит.

Как ничего не говорит?????? Ексепшн для кода [1] не вылетает что-ли?????

А в екслель чтонибудь написать програмно не пробовал????


 
klerk   (2004-10-01 13:55) [13]

YurikGL ©   (01.10.04 13:43) [12]
Да, ничего. Если не запущено ни одного файла, то пишет - НЕТ.
Если открыто несколько - пишет только 1.
Вот и всё:(

И ещё, посоветуйте литературку (книгу, ресурс) по использованию вкладки Servers из Delphi5. Особенно про ExcelApplication.
А то как ёж в тумане.


 
klerk   (2004-10-01 14:12) [14]

И если использовать klerk   (01.10.04 12:50) [6]
то же самое.


 
YurikGL ©   (2004-10-01 15:23) [15]


> klerk   (01.10.04 13:55) [13]

цикл
while true do begin
Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
inc(i);
            end;

Cколько раз повторяется? И почему он останавливается?


> И ещё, посоветуйте литературку (книгу, ресурс) по использованию
> вкладки Servers из Delphi5. Особенно про

http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1084962208
Читать интересное о себе.



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

Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.035 c
6-1091441323
Дмитрий Ботвин
2004-08-02 14:08
2004.10.17
UDP cканер сети


4-1094995095
ANB
2004-09-12 17:18
2004.10.17
Стандартные хэндлы ввода вывода для CreateProcess


3-1095766322
Adnrei
2004-09-21 15:32
2004.10.17
Microsoft SQL Сервер


14-1096199368
kaif
2004-09-26 15:49
2004.10.17
Любовь, как принцип совершенства или Ода любви


3-1095676473
Denniro
2004-09-20 14:34
2004.10.17
как правельно подключиться к базе с помощью ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский