Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с Excel [D5, Win95/98, NT4]


OlDemon ©   (2002-06-11 12:21:00) 

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

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

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


OlDemon   (2002-06-21 11:02:00) [1]

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


Sergeyy   (2002-06-21 10:46:00) [2]

Я делаю так в 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, что дает возможность удобно и с малой вероятностью ошибок использовать его свойства. К сожалению, мне не удалось рано связать лист и книгу с тем, чтобы потом надежно их уничтожать, но при аккуратном написании кода и ловле ошибок это не так уж важно.


AFROLOV   (2002-06-21 10:08:00) [3]

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


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

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



OlDemon   (2002-06-21 06:27:00) [5]

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


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

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


Shaman_Naydak   (2002-06-11 13:10:00) [7]

Excel.DisplayAlerts:=False;


Наверх

Титульная страница Поиск, карта сайта Написать письмо