Форум: "Основная";
Текущий архив: 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