Главная страница
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.016 c
14-10010
DeMoN-777
2002-06-03 17:31
2002.07.04
Кника по Delphi


14-9996
Vitalis
2002-06-03 22:56
2002.07.04
Интерпретатор команд


14-9962
panov
2002-05-24 14:38
2002.07.04
А не организовать ли встречу в Екатеринбурге?


14-9982
Rub
2002-05-31 13:28
2002.07.04
Народ, а чем 6-е лучше 5-х????


1-9903
Olya1
2002-06-22 23:05
2002.07.04
Как сделать форму модальной?