Главная страница
    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
14-88596
Саша
2002-04-18 10:03
2002.05.27
База данных


7-88642
Red Alert
2002-02-25 13:37
2002.05.27
Связь с АТС


3-88324
Fareader
2002-04-29 19:51
2002.05.27
Two-Phase Commit


1-88421
Юрий К
2002-05-16 11:32
2002.05.27
Методы канвы при печати на принтер


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