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

Вниз

Снова про 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.045 c
14-1096109267
X9
2004-09-25 14:47
2004.10.17
NRG 2 ISO


1-1096820240
M-Alex
2004-10-03 20:17
2004.10.17
Command


8-1090659762
DarkAvenger
2004-07-24 13:02
2004.10.17
тег mp3 файла


1-1096446467
ceval
2004-09-29 12:27
2004.10.17
Помогите разобраться в первый раз работаю с TRegistry


14-1096198154
begin...end
2004-09-26 15:29
2004.10.17
Windows 2000: хранить в холодильнике