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

Вниз

Работа с Excel   Найти похожие ветки 

 
OlDemon   (2002-06-11 12:21) [0]

Уважаемые мастаки!

Возник такой вопрос:
При закрытии Excel из Delphi она (Excel) спрашивает сохранить ли изменения в файле. Можно ли сделать так чтобы это окно не вываливалось?

Заранее спасибо.


 
Shaman_Naydak ©   (2002-06-11 13:10) [1]

Excel.DisplayAlerts:=False;


 
Жора   (2002-06-12 13:43) [2]

Раскажите мне пожалуйста о ВЗАИМОДЕИСТВИЙ DELPHI C EXCEL.


 
OlDemon   (2002-06-21 06:27) [3]

2 Shaman_Naydak>
Спасибо большое, все получилось.


 
OlDemon   (2002-06-21 06:37) [4]

2 Жора>
Я сам только начал разбираться в этом, поэтому знаю не много, раскажу то что знаю.
ИМХО начиная с 5 версии в дельфе есть возможность связываться с офисными приложениями с помощью технологии OLE.
Т.е. не только с Excel, но и Wordом и т.д. Мне это было нужно лоя красивой печати. Создаю красивую табличку в экселе а из дельфи заполняю. При этом эксель висит в памяти как задача, но на панели не отображается (хотя может это только в NT так).
При заполнении используются стандартные команды VBA, и если ты чего то не знаешь то просто записывай макрос, а потом смотри что получилось.
Правда не всегда так можно (например в моем случае).
Вот основной оператор привязывания:
FExcel:=CreateOleObject("Excel.Application");
FExcel должен быть Variant
В конце FExcel:=null; (убиваем экселевский процесс в памяти)
Если хочешь могу отправить тебе какую-нибудь процедурку считывания из экселевского файла.




 
AFROLOV ©   (2002-06-21 10:08) [5]

http://www.delphikingdom.com/helloworld/
http://www.afalinasoft.com/rus/tips/index.html
+Справка по VBA (обычно входит в комплект офиса)+запись макросов.


 
Sergeyy ©   (2002-06-21 10:46) [6]

Я делаю так в D5:
uses ..., Excel97, ...

const xlLCID = LOCALE_USER_DEFAULT;
var
MyExcel: TExcelApplication;
MySheet: Variant;
MyBook: Variant;
begin
MyExcel := TExcelApplication.Create(Form1);
try
MyBook := MyExcel.Workbooks.add(EmptyParam, xlLCID); //вместо EmptyParam можно написать путь к шаблону
MySheet := Exc.Workbooks[1].Sheets[1];
{Тут издеваемся над Ёкселем}
finally
Exc.Visible[xlLCID] := true;
MySheet := null;
MyBook := null;
Exc.Destroy;
end;
end;

Как видно, здесь используется раннее связывание MyExcel, что дает возможность удобно и с малой вероятностью ошибок использовать его свойства. К сожалению, мне не удалось рано связать лист и книгу с тем, чтобы потом надежно их уничтожать, но при аккуратном написании кода и ловле ошибок это не так уж важно.


 
OlDemon ©   (2002-06-21 11:02) [7]

Да хороший способ. Но в принципе меня вполне устроил вариант Shaman"а. К тому же я слышал что раннее связывание сложнее позднего.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
7-10033
alexspb
2002-04-09 18:52
2002.07.04
Как узнать имя пользователя-владельца файла в WinNT?


1-9814
Дельфятник
2002-06-21 16:41
2002.07.04
Почему TFrame не дружит с TBitBtn?


3-9770
Саша
2002-06-09 15:51
2002.07.04
Запретить удаление по Ctrl+delete


1-9854
Exploited
2002-06-16 18:12
2002.07.04
Подсказки в виде облаков.


1-9806
kull
2002-06-20 00:27
2002.07.04
Корректно ли такое приведение типов?