Главная страница
    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.006 c
7-88658
lipskiy
2002-03-02 19:00
2002.05.27
Что надо учесть, чтобы быть уверенным, что мое приложение будет работоспособно на всех пользовательских машинах?


1-88432
seacat
2002-05-17 11:14
2002.05.27
Чтение из файла


1-88512
MaximatorVeter
2002-05-15 19:26
2002.05.27
Подкиньте примеры по ООП


1-88554
Ron
2002-05-16 15:05
2002.05.27
TEdit


1-88402
mifi
2002-05-16 20:34
2002.05.27
Myimage :array





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский