Главная страница
    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.053 c
9-1087116065
Жора
2004-06-13 12:41
2004.10.17
Проблемы с клавиатурой


1-1096792138
nof
2004-10-03 12:28
2004.10.17
StrToChar


6-1090086995
AlexeyM
2004-07-17 21:56
2004.10.17
Использование CGI


4-1094909921
InfMag
2004-09-11 17:38
2004.10.17
Блокировшик


3-1095669825
ADObeginner
2004-09-20 12:43
2004.10.17
Ошибка "недостаточно сведений из основной таблицы для обновления"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский