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

Вниз

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

 
klerk   (2004-09-30 14:54) [0]

Вот пытаюсь загрузить имена всех открытых файлов Excel в Combobox.
ExcelApplication1.Connect;
try
excelapplication1.wo
if  ExcelApplication1.Workbooks.Count=0 then      
begin
Combobox1.items.add("Нет открытых.");
combobox1.ItemIndex:=0;
end
else
   for I := 1 to ExcelApplication1.Workbooks.Count do
  begin
    W := ExcelApplication1.Workbooks[I];
    S:=w.name;
         Combobox1.Items.Add(S);
  end;
finally
  ExcelApplication1.Disconnect;
  combobox1.ItemIndex:=0;

Так он находит один (первый) и всё.
Помогите.


 
klerk   (2004-09-30 14:56) [1]

excelapplication1.wo можно не смотреть - ошибся при копировании:)
Этой строки нет.


 
YurikGL ©   (2004-09-30 15:09) [2]

App : Variant;

try
app := CreateOleObject("Excel.Application");
 App.Visible := True;
if  app.Workbooks.Count=0 then
begin
Combobox1.items.add("Íåò îòêðûòûõ.");
combobox1.ItemIndex:=0;
end
else
  for I := 1 to app.Workbooks.Count do
   Combobox1.Items.Add(app.Workbooks[I].name);
finally
 App:=Unassigned;
end;
end;


 
klerk   (2004-09-30 15:22) [3]

>YurikGL ©
Сделал по-твоему.
Открыто два файла.
А он всё равно пишет в Combobox "Нет".


 
YurikGL ©   (2004-09-30 15:36) [4]


> klerk   (30.09.04 15:22) [3]

Дык это ж запускает новую копию екселя... В ней и нет документов...


 
YurikGL ©   (2004-09-30 15:40) [5]

ExcelApplication1.ConnectKind:=ckRunningInstance;
ExcelApplication1.Connect;
ExcelApplication1.Workbooks.Item[1].Name;
if  ExcelApplication1.Workbooks.Count=0 then
begin
Combobox1.items.add("Íåò îòêðûòûõ.");
combobox1.ItemIndex:=0;
end
else
for I := 1 to ExcelApplication1.Workbooks.Count do
   Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
ExcelApplication1.Disconnect;


 
klerk   (2004-09-30 15:50) [6]

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);

Всё равно заносит в combobox одно значение:(
Чего я не понимаю?


 
YurikGL ©   (2004-09-30 15:52) [7]


> klerk   (30.09.04 15:50) [6]

У меня два...На большем количестве не проверял... Может combobox как-то не так настроен?

Использую 2000-е компоненты


 
klerk   (2004-09-30 16:02) [8]

Я использую D5 и его стандартные компоненты.
Переделал всё на Memo.
Результат тот же:(
Добавляет одну строку (Книга1) и всё.


 
YurikGL ©   (2004-09-30 16:22) [9]


> klerk   (30.09.04 15:50) [6]

1) А сколько у тебя ExcelApplication1.Workbooks.Count?
2) Попробуй не две книги, а пять
3) Попробуй книги не с 1-цы а с 0 считать


 
klerk   (2004-09-30 16:29) [10]

1) Showmessage(inttostr(ExcelApplication1.Workbooks.Count)); = 1
2) Попробовал на 6 - то же.
3) Выдаёт : неверный индекс.

:(((((


 
YurikGL ©   (2004-09-30 16:48) [11]


> 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;

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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.041 c
6-1092013221
eRoR_rrr
2004-08-09 05:00
2004.10.17
Состояние Net send


1-1096449315
Pentium133
2004-09-29 13:15
2004.10.17
Не совсем обычный TTreeView


6-1092183373
GUEST
2004-08-11 04:16
2004.10.17
Синхронизация времени


3-1095868683
SH
2004-09-22 19:58
2004.10.17
Исталляция клиент-серверного приложения с БД Interbase


1-1096420469
Leaner
2004-09-29 05:14
2004.10.17
ExpandEnvironmentStrings Получение полного пути файла.