Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Как избавиться от сообщений Excel при закрытии Workbooks ?   Найти похожие ветки 

 
Karbo   (2004-04-17 20:13) [0]

При работе с таблицей 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;


 
sandima   (2004-04-18 17:10) [1]

В VBA это выглядит так

"Закрытие файла без сохранения изменения
Workbooks(LoadFileName).Close SaveChanges:=False

а как будет в Delphi не знаю может
Excel.WorkBooks.Close(1); //что означает lcid ?

А как ты обращаешься к ячейкам на листе?


 
sandima   (2004-04-18 17:17) [2]

Там есть интересный момент. Если ты выполняешь копирование большого объема,то все это дело пишется в Clipboard и при закрытии WoirkBook выдается запрос на уничтожение данных в Clipboard-е, при чем работать с ним не позволяет даже VBA, но обойти можно скопировав перед закрытием в Clipboard например одну букву. Да Clipboard у wind-ы и MicrosOffice разные.


 
voprosik   (2004-04-19 06:54) [3]

по-моему, надо просто передать объекту Excel после создания команду:
Excel.DisplayAlerts := False


 
Виталий   (2004-04-19 10:31) [4]

Можно сделать так. Изменения сохранить в новом файле, а старый
закрыть без сохранения.


 
TransparentGhost   (2004-04-19 11:57) [5]

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(


 
Alex*   (2004-04-19 12:02) [6]

...
var IBookPrice: array [0..2] of TExcelApplication;
...
IBookPrice[1].ActiveWorkbook.Close(true,EmptyParam,false,0);
....

С наилучшими пожеланиями


 
Alex*   (2004-04-19 12:05) [7]

Первое сообщение как закрыть Excel без запросов на подтверждение закрытия.

А это как сохранить
IBookPrice[1].ActiveWorkbook.SaveAs("C:\"+Table1.FieldValues["NAME_ORGON"],xlNormal,"","",false,false,xlNoChange,e mptyParam,emptyParam,emptyParam,emptyParam,0);


 
Smart   (2004-04-20 06:30) [8]

Перед закрытием Excel добавь такой код:

ExcelApplication1.Save;

после этого он не будет выдавать запрос на сохранение.



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1105696438
Zilog
2005-01-14 12:53
2005.01.30
структура конфигурационного файла (как хранить)


1-1105505973
DDDeN
2005-01-12 07:59
2005.01.30
Раскрасить строки StringGrid


3-1103727563
Denmin
2004-12-22 17:59
2005.01.30
Как сохранить файл jpg в таблицу MSSQL ?


1-1106050411
ShimON
2005-01-18 15:13
2005.01.30
MD5???


8-1098032202
Kovsh
2004-10-17 20:56
2005.01.30
Как регулировать громкость через Делфи?