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

Вниз

формирование отчетов в Excel из программы на Delphi   Найти похожие ветки 

 
andrey_pst ©   (2002-05-15 16:37) [0]

Подскажите, в чем ошибка ?

1) задаю переменные:
var
pExcelApp:Variant; // сервер Excel
WorkBook:Variant; // книга Excel
WorkSheet:Variant; // лист Excel
RRange:Variant; // диапазон ячеек на листе Excel

2) загружаю сервер:
pExcelApp:=CreateOleObject("Excel.Application");
3) добавляю книгу:
WorkBook:=pExcelApp.WorkBooks.Add; // Добавили книгу Excel
4) заполняю лист данными ...
RRange:=WorkSheet.Cells[1,7]; // Получили ячейку
RRange.Value:=string1; // Содержимое
и т.п. ...
5) добавляю новый лист:
WorkSheet:=WorkBook.WorkSheets.add;
6) опять заполняю лист данными ...
7) повторяю действия 5-6 n раз
8) сохраняю книгу:
WorkBook.SaveAs(sFileName); // Сохранили книгу
9) закрываю книгу:
WorkBook.Close;
10) закрываю Excel:
pExcelApp.quit;
11) повторяю действия с 2 по 10 несколько раз (например 1000)

Суть проблемы:
в Win98 RAM 256
Формируется 1-ая книга в ней около 100 листов
Формируется 2-ая книга в ней около 30 листов
Формируется 3-я книга в ней около 10 листов
и все, выдается сообщение либо о том, что Excel-ю не хватает памяти, либо о том, что памяти не хватает "ОКОШКАМ" (т.е. выдается либо ошибка Excel, либо системная ошибка, но смысл один - не хватает памяти).
Ctrl+Alt+Del показывает один процесс Excel.
я понимаю, что где-то не освобождается память, подозреваю что при pExcelApp.quit , но что с этим делать ? как ее освободить ? Может кто подскажет ?


 
AFROLOV ©   (2002-05-15 17:07) [1]

pExcelApp:=Unassigned; вместо pExcelApp.quit;
И еще, какой у тебя офис?
С такими объемами лучше работать под Win Nt/2000 и офис не ниже 2000.


 
andrey_pst ©   (2002-05-17 13:11) [2]

вся эта бодяга происходила из-за того, что я задавал параметры листа, как только эти строки закомментарил, проблема исчезла.

как быть? мне в параметрах листа поля менять надо.
попробовал с помощью шаблона:
WorkSheet:=WorkBook.WorkSheets.add("C:\Program Files\Microsoft Office\Шаблоны\Detal_.xlt");
получил ошибку: мол метод add закончен неверно.

Кстати, такого глюка даже под WinMe нет, не говоря уж про NT.
Офис 97.
Я не могу всем менеджерам 2000-ый и NT поставить :).



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

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

Наверх




Память: 0.47 MB
Время: 0.009 c
1-88459
PShadow
2002-05-15 13:28
2002.05.27
Дельфи ругается на CreateOleObject


14-88613
Satrap
2002-04-17 09:38
2002.05.27
MSDN


4-88679
Andrew K.S.
2002-03-26 12:34
2002.05.27
WinExec


1-88508
Бывалый
2002-05-15 20:12
2002.05.27
Вопрос по формам.


3-88333
YouNick
2002-04-29 15:52
2002.05.27
удаленный сервер InterBase