Форум: "Основная";
Текущий архив: 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