Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Delphi&Excel

2.4K
26 декабря 2002 года
rise
4 / / 26.12.2002
Народ помогите, я работаю в Delphi с Excel, приходится обрабатывать
одной процедурой большое количество файлов, когда колличество фалов не совсем большое программа работает нормально,
но прибольшом колличестве все начинает дико тормозить, хотя я каждый используемый файл Excel закрываю
и только после этого открываю новый,
После работы программы в списке задач то бывает остаются приложения Excel то нет,
а когда много фалов обрабатываешь бывает совсем зависает!

вот краткая вырезка из кода

var xla : _Application;
xlw : _Workbook;
xls : _WorkSheet;
Begin
...
try
for i:=1 to n do Begin
...
xla := CoExcelApplication.Create;
xlw := xla.Workbooks.Add(filename+'.xls',LCID);
xlw.Sheets.Item[4].QueryInterface(IID__Worksheet,xls);
xls.Activate(1);
...

finally
xla.quit;
end;
...
end;

end;

я пробовал и следующим образом
var xla1 : Variant;

Begin
...
for i:=1 to n do Begin
try
xla1 := CoExcelApplication.Create;//ИНдекс
xla1.Workbooks.Add;
...
finally
xla1.quit;
end;
end;//for

end;
295
26 декабря 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by rise
Народ помогите, я работаю в Delphi с Excel, приходится обрабатывать
одной процедурой большое количество файлов, когда колличество фалов не совсем большое программа работает нормально,
но прибольшом колличестве все начинает дико тормозить, хотя я каждый используемый файл Excel закрываю
и только после этого открываю новый,
После работы программы в списке задач то бывает остаются приложения Excel то нет,
а когда много фалов обрабатываешь бывает совсем зависает!

вот краткая вырезка из кода

var xla : _Application;
xlw : _Workbook;
xls : _WorkSheet;
Begin
...
try
for i:=1 to n do Begin
...
xla := CoExcelApplication.Create;
xlw := xla.Workbooks.Add(filename+'.xls',LCID);
xlw.Sheets.Item[4].QueryInterface(IID__Worksheet,xls);
xls.Activate(1);
...

finally
xla.quit;
end;
...
end;

end;

я пробовал и следующим образом
var xla1 : Variant;

Begin
...
for i:=1 to n do Begin
try
xla1 := CoExcelApplication.Create;//ИНдекс
xla1.Workbooks.Add;
...
finally
xla1.quit;
end;
end;//for

end;


Я пользовался OLE компонентом TExcelApplication.
Excel:TExcelApplication;
Excel.Connect;
.....
Excel.Disconnect;// после выполнения этого оператора Excel в диспетчере задач исчезает.

2.4K
27 декабря 2002 года
rise
4 / / 26.12.2002
Цитата:
Originally posted by gray_k

Я пользовался OLE компонентом TExcelApplication.
Excel:TExcelApplication;
Excel.Connect;
.....
Excel.Disconnect;// после выполнения этого оператора Excel в диспетчере задач исчезает.



Я пробовал тоже этот компонент, но я у него так и не нашел как перемещаться по листам книги

295
27 декабря 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by rise


Я пробовал тоже этот компонент, но я у него так и не нашел как перемещаться по листам книги


Что значит как перемещаться? В справке по VBA всё есть. Операторы один в один оттуда.

2.8K
14 января 2003 года
DennnyK
7 / / 13.01.2003
var
ExcelSheet,MSExcel : Variant;
begin
// Создать ссылку на зарегистрированный OLE объект
MsExcel := CreateOleObject('Excel.Application');
// Создать документ по шаблону
MSExcel.Workbooks.Open (ExtractFilePath(Application.ExeName) + '\Temp.xls');
ExcelSheet := MSExcel.sheets[1];
ExcelSheet.Activate;
// заполнить
MSExcel.Cells [I,J] := ...
// сделать видимым копию сервера
// MSExcel.Visible := TRUE;
// Записать заполненный файл в файл с указанным именем
ExcelSheet.SaveAs (...);
// Закрыть страничку и Excel вообще
MSExcel.Workbooks.Close;
MSExcel.Quit;
end;

Так вот то же есть проблемы - файл нормально не заполняется если запущен уже экземпляр Excel.
Видимо придётся переползать на использование стандартного для Dephi6 обьект ExcelApplication из закладки Servers.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог