![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как избавиться от сообщений Excel при закрытии Workbooks ? [Delphi, Windows]
Karbo © (2004-04-17 20:13:00)При работе с таблицей Excel выплывает такое сообщение:
Сохранить изменения в FILENAME.XLS ?
Microsoft Excel пересчитывает формулы при открытии файлов, сохраненных в предыдущей версии Excel
Да Нет Отмена
Как избавиться от этого окна ? Никаких изменений в FileName.xls не вносится и совсем не надо ничего пересчитывать. Код такой:
...
uses Excel97; //хоть бы и Exel2000
...
function GetExcelData ( Owner : TComponent; CONST FileName : string ) : TAnytype;
var
Excel : TExcelApplication;
begin
Excel := TExcelApplication.Create(Owner);
Excel.Connect;
Excel.Workbooks.Open
( FileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
{
Здесь код чтения из FileName.xls
}
excel.Workbooks.Close(0); //вот здесь и выплывает "Сохранить изменения ?..."
Excel.Quit;
Excel.Disconnect;
Excel.Free;
end;
Smart (2004-04-20 06:30:00) [1]Перед закрытием Excel добавь такой код:
ExcelApplication1.Save;
после этого он не будет выдавать запрос на сохранение.
Alex* (2004-04-19 12:05:00) [2]Первое сообщение как закрыть Excel без запросов на подтверждение закрытия.
А это как сохранить
IBookPrice[1].ActiveWorkbook.SaveAs('C:\'+Table1.FieldValues['NAME_ORGON'],xlNormal,'','',false,false,xlNoChange,e mptyParam,emptyParam,emptyParam,emptyParam,0);
Alex* (2004-04-19 12:02:00) [3]...
varIBookPrice: array [0..2] of TExcelApplication;
...
IBookPrice[1].ActiveWorkbook.Close(true,EmptyParam,false,0);
....
С наилучшими пожеланиями
TransparentGhost (2004-04-19 11:57:00) [4]Excel.DisplayAlerts := False ne vsegda podhodit...
naprimer, jesli bili otkriti kakije-to dokumenti i redaktirovalis'- po oshibke mozhno nazhat' na zakritije vsego Excela, i on molcha zakrojeca ne sprosiv nichego o teh dokumentah, kotorije bili otkriti i redaktirovalis' :o(
Виталий (2004-04-19 10:31:00) [5]Можно сделать так. Изменения сохранить в новом файле, а старый
закрыть без сохранения.
voprosik (2004-04-19 06:54:00) [6]по-моему, надо просто передать объекту Excel после создания команду:
Excel.DisplayAlerts := False
sandima (2004-04-18 17:17:00) [7]Там есть интересный момент. Если ты выполняешь копирование большого объема,то все это дело пишется в Clipboard и при закрытии WoirkBook выдается запрос на уничтожение данных в Clipboard-е, при чем работать с ним не позволяет даже VBA, но обойти можно скопировав перед закрытием в Clipboard например одну букву. Да Clipboard у wind-ы и MicrosOffice разные.
sandima (2004-04-18 17:10:00) [8]В VBA это выглядит так
'Закрытие файла без сохранения изменения
Workbooks(LoadFileName).Close SaveChanges:=False
а как будет в Delphi не знаю может
Excel.WorkBooks.Close(1); //что означает lcid ?
А как ты обращаешься к ячейкам на листе?