Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизИспользование MWord в Delphi Найти похожие ветки
← →
Max Payne © (2004-07-25 18:24) [0]У меня проблема такая: после чтения некоторой информации из текстового документа мне надо бы перевести эту инфу в Word, причём не просто "закинуть", а использовать разный формат текста, форматирование, таблицы и т.д. и т.п. Я даже нашёл компоненты, которые должны быть связаны с этим (WordApplication, WordDocument...), правда, не совсем понимаю, почему они во вкладке Servers (мало опыта: мне 16 лет и работаю в Дельфи всего 4 месяца).
На этом сайте толковой информации я не нашёл (разве что константы какие-то к Word"у и Excel"ю). Если кто-то знает какие-нибудь ссылки с подобной информацией, то я буду очень вам благодарен, если вы мне её передадите. Спасибо
← →
TechnoDreamer (2004-07-25 19:15) [1]http://www.interface.ru/borland/d5_office/d5_office.htm
← →
Piter © (2004-07-25 19:48) [2]Мне тоже как-то пришлось работать с Word"ом, правда простенько так, без наворотов. Читать что-то серьезное было влом, да и искать надо.
Мне был нужен маленький пример, вот я тебе даю его:procedure TForm1.Button1Click(Sender: TObject);
var
MsWord: Variant;
begin
MsWord:=CreateOleObject("Word.Application");
try
MsWord.Documents.Add;
MsWord.Selection.TypeText("Тест1");
MsWord.Selection.TypeParagraph;
MsWord.Selection.Text := "Тест2";
MsWord.Selection.Font.Bold := 1;
MsWord.Selection.EndKey;
MsWord.Selection.Font.Bold := 0;
MsWord.Selection.TypeText(" тест3");
finally
MsWord.Visible := True;
end;
end;
Не забудь подключить модуль comobj.
Рассказываю:MsWord:=CreateOleObject("Word.Application");
- создается Ole объект вордовский, можно сказать, что это как бы "запуск" Word"аMsWord.Documents.Add;
- в ворде создается новый документMsWord.Selection.TypeText("Тест1");
- как будто ты в этом новом документе пишешь слово Тест1MsWord.Selection.TypeParagraph;
- как будто ты после написания просто жмешь EnterMsWord.Selection.Text := "Тест2";
- как будто ты пишешь слово Тест2. В отличии от TypeText ты как бы это слово пишешь и тут же его выделяешь, чтобы к этому выделению применить какие-то действия.MsWord.Selection.Font.Bold := 1;
- ты делаешь выделенную фразу жирной. (а выделено у нас Тест2).MsWord.Selection.EndKey;
- как будто ты жмешь клавишу End. То есть, курсор переходит к концу строки. Выделение снимается.MsWord.Selection.Font.Bold := 0;
- отменяешь стиль"жирный". Чтобы последующие написанные слова были без выделения жирным.MsWord.Selection.TypeText(" тест3");
- как будто просто пишешь слово Тест3MsWord.Visible := True;
- делаешь ворд видимым на экране. Этот пункт надо выполнять обязательно, иначе ворд будет в памяти находится, но на экран не покажется. В тоже время не надо показывать раньше времени, чтобы пользователь не видел как там по полю курсор ползает в соответствии с коммандами.
Ну так вот, элементарный пример я тебе показал - можешь посмотреть его результаты. Все проще простого.
А дальше я делал вот как, чтобы узнать что еще можно делать. Открываеш Word, нажимаешь "Сервис->Макрос->Запись макроса" и делаешь руками что угодно -, оформление и т.д. Потом останавливаешь запись макроса и смотрищь какой макрос получился. Там будет записано все, что ты сделал руками, но на языке VB. При известном умении и пользуясь F1 на непонятных местах переводишь это все в Delphi. Получается все, что ты можешь ручками сделать в Word"е - можно сделать программно.
Тоже и к Excel"у применимо.
P.S. Может и ламерский подход, но за день разбирательств я полностью реализовал нужный мне функционал...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c