Вопрос по XlCreateExcelWithTemplate
Модераторы: m0p3e, edward_K, Модераторы
Вопрос по XlCreateExcelWithTemplate
В каком месте диска создается файл - результат работы этой функции? во временной папке ОС?
я тоже так думал, но в том то и дело, что создает! И даже имена вновь создаваемым файлам дает как "имя шаблона" + номер.xlsm0p3e
Сейчас использую вот такой код обертку
Код: Выделить всё
public function CreateExcelFileFromTemplate(templateName : string; fileName : string) : boolean;
{
DeleteFile(fileName);
result := CopyMoveFile(templateName, fileName, false);
if (result)
{
XlCreateExcelWithTemplate(fileName, true);
XlDisplayAlerts(false);
result := XlIsExcelValid();
}
}
После открытия созданного файла -> fileName можно удалить! Т.е. если бы открылся fileName, то имя бы у него было как у шаблона и он бы был заблокирован от удаления. Вот
Вот исходник:
Не должен он ничего создавать по идее.
Код: Выделить всё
constructor tExporter.CreateWithTemplate;
begin
inherited Create;
InitExporter;
if(not DoOpenExcel) then begin
Fail; Exit;
end;
try
SetGlobSettingOnStart(Visible);
if (trim(TemplateName) = '') then begin
WBook := ExApp.WorkBooks.Add;
end else begin
CloseWorkBookByName(TemplateName); // перенесли из Vip закрытие книжки сюда
WBook := ExApp.WorkBooks.Add(TemplateName);
end;
WBook.Windows[1].WindowState := xlMaximized;
ExApp.ScreenUpdating := False;
except
LogOnExcept('CreateWithTemplate1');
LastError := cgxlErrAddWorkBook;
end;
try
WSheet := WBook.WorkSheets.Item[1];
except
LogOnExcept('CreateWithTemplate2');
end;
end;
m0p3e
Код: Выделить всё
ExApp.WorkBooks.Add(TemplateName);
может раньше это и было так, только сейчас после вызова XlCreateExcelWithTemplate(fileName, true); - темплейт освобождается сразу!!! Попробуйте, поставить Message и удалите файл темплейта!!!! Галактика 8.10, все последние патчи стоят. Файл создается как временный - имя файла -> 'имя файла темплейта'1 (далее 2, 3, 4...) если формировать несколько отчетов подряд
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
edward_k, согласно доке:
Описание:
Function xlOpenExcel (Visible : boolean) : boolean;
Открывает Excel, никаких файлов не откравает. Если Excel уже был запущен, то новый не создает, а подключается к нему.
Возвращает результат операции.
ДАННАЯ ФУНКЦИЯ НЕ ОТКРЫВАЕТ ФАЙЛ!
Есть что то еще? или может несколько надо?
mOp3e,
РАБОТАЮ С xls файлом (создан вообще независимо от Гал-ки)
Описание:
Function xlOpenExcel (Visible : boolean) : boolean;
Открывает Excel, никаких файлов не откравает. Если Excel уже был запущен, то новый не создает, а подключается к нему.
Возвращает результат операции.
ДАННАЯ ФУНКЦИЯ НЕ ОТКРЫВАЕТ ФАЙЛ!
Есть что то еще? или может несколько надо?
mOp3e,
РАБОТАЮ С xls файлом (создан вообще независимо от Гал-ки)