Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизПро 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c