Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
14-10010
DeMoN-777
2002-06-03 17:31
2002.07.04
Кника по Delphi


1-9831
HitMan
2002-06-24 16:39
2002.07.04
Несколько маленьких вопросов...


3-9702
serg_ss
2002-06-10 16:13
2002.07.04
Почему в IB SQL-запросе 10 - null = null


3-9724
Виталий Панасенко
2002-06-11 08:47
2002.07.04
UPDATE дной таблице по друго с использованием SQL


14-9967
Аня
2002-05-30 14:35
2002.07.04
Создание справочной системы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский