Форум: "Основная";
Текущий архив: 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