|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Книга Excel Здравствуйте уважаемые. Проблема такая... Создаю книгу exel (экспорт из БД) , далее сохраняю с заданным именем .. Код:  const
Fnn= 'Test';
XLApp.WorkBooks[1].SaveAs(ExtractFilePath(Application.ExeName)+Fnn);
в нужный момент открываю книгу на другой форме в oleconteiner..
OleContainer1.CreateObjectFromFile(ExtractFilePath(Application.ExeName)+Fnn,False);
OleContainer1.DoVerb(ovShow);
затем при закрытии формы удаляю созданный файл ..
procedure TForm23.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
If  FileExists(ExtractFilePath(ParamStr(0))+'Test.xlsx') Then Begin
DeleteFile('Test.xlsx');
OleContainer1.Close;
OleContainer1.DestroyObject;
  end;
  end;
все прекрасно работает что и требовалось.
Но иногда нужно сохранить книгу с другим именем делаю так..
procedure TForm23.N3Click(Sender: TObject);
begin
if SaveDialog1.Execute then begin
OleContainer1.OleObject.SaveAs(SaveDialog1.FileName);
 ShowMessage('Отчет сохранён в файл:'#10+SaveDialog1.FileName+'xlsx');
end;
end;тоже все нормально сохраняет. Но теперь код при закрытии формы FormCloseQuery не удаляет первоначально созданный файл Test.xlsx, в чем проблема? Буду благодарен за потраченое на меня время. Последний раз редактировалось Admin, 30.10.2024 в 22:06. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Ну сохрани имя файла при сохранении и используй его для удаления. У тебя в OnCloseQuery жестко прописано имя файла. Кстати и там у тебя ошибка - в услови проверки имени ты проверяешь полное имя, я в команде удаления - короткое. Еще одна причина, по которой файл может не удаляться - он может быть заблокирован экселем. Тогда надо перед удалением файла также освоболить созданный объект экселя. | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
Filen (02.11.2024)
 | ||
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 Спасиб уважаемый, чтоб без тебя делал. Я не волшебник , я только учусь.. | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   я извиняюсь, вы тегом "code" не умеете пользоваться? |