Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подкиньте пожалуйста пример SaveAs для Excel из Delphi [D5, Win2k]


voronkov ©   (2002-07-08 12:21:00) 

Задача такая - надо открыть в фоновом режиме Excel, напихать туда чего-то и сохранить в заранее известном файле. Все это делается, кроме записи. При вызове метода Save все время выскакивает диалог записи файла, мне он совершенно не нужен. Подскажите пожалуйста работающий пример функции SaveAs объекта Excel.


voronkov   (2002-07-08 16:48:00) [1]

Господа, я тут одурел от жары. Я пытался записывать после того как уже освободил все объекты.
Запись работает только со всеми параметрами, все записывается, но некоторые параметы нужны. Всем большое спасибо.


voronkov   (2002-07-08 16:38:00) [2]

Да, господа. Типа все хорошо, но только на словах. Попробовал как сказал USAtyj, но все та же песня, компилятор говорит, что не хватает параметров, все параметры я перечислил выше, никакие они не word-овские.
Если делать как у TTCustomDelphiMaster, то там тоже не хватает одного параметра, а именно lcid. Я ставлю 0, все компилируется, но выдетает Access violation. Я создаю файл из шаблона, может это на что-то влияет. Блин, как у вас все это работает, может тут тайна какая-то, может можно как-то компилятор убедить компилировать без параметров?


TTCustomDelphiMaster   (2002-07-08 13:33:00) [3]

А я так сохраняю файл
Workbook.SaveCopyAs(dir+destname30);


USAtyj   (2002-07-08 13:29:00) [4]

У меня код такой работает:

...
if FileExists(FileName) then // если такой файл уже есть - удаляем, иначе сохранить не получится.
DeleteFile(PChar(FileName));
Excel.ActiveWorkBook.SaveAs(FileName);
Excel.ActiveWorkBook.Close(SaveChanges := True);
Excel:=UnAssigned;
...

А то, что ты написал - это, кажется, в Word так сохранять надо.


voronkov   (2002-07-08 13:14:00) [5]

Я вызываю этот метод, но в нем куча параметров. Некоторые я проставил, но что-то не подходит, хотя все компилируется. Я не могу найти на все эти параметры описания, поэтому выскакивает ошибка, что-то типа "invalid index" или что-то подобное. Вот вся эта ботва из файла excel97.pas :

procedure SaveAs(const Filename: WideString; FileFormat: OleVariant; Password: OleVariant;
WriteResPassword: OleVariant; ReadOnlyRecommended: OleVariant;
CreateBackup: OleVariant; AddToMru: OleVariant; TextCodepage: OleVariant;
TextVisualLayout: OleVariant; lcid: Integer); safecall;


Что такое, например TextCodepage? Я потому и прошу работающий пример, потому что кто-то уже наверняка на эти грабли наступал. Но неужели все открывают Excel, а потом заставляют юзверя руками все это сохранять, нелогично как-то, особенно если это отчет формируется в пакете и куда-то отсылается, как в моем случае.


troits   (2002-07-08 12:44:00) [6]

Работающего примера нет, но попробуй вызвать метод
SaveAs(Filename: OleVariant; ...
у WorkBook - а. (Например Application.ActiveWorkBook.SaveAs...)
Мне кажется, что проблем быть не должно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо