Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

формирование отчетов в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-88525
Грифон
2002-05-15 19:29
2002.05.27
ограничить количество компонент на форме


1-88449
Art1
2002-05-17 15:31
2002.05.27
Как сделатьт указатель на переменную?


14-88593
Condor
2002-04-18 10:31
2002.05.27
Работа с разными БД в одном запросе


1-88428
Art1
2002-05-16 11:50
2002.05.27
3 вопрооса по RxRichEdit.


14-88612
Dimich
2002-04-18 12:21
2002.05.27
Про хитрую программку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский