Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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"); - как будто ты в этом новом документе пишешь слово Тест1

MsWord.Selection.TypeParagraph; - как будто ты после написания просто жмешь Enter

MsWord.Selection.Text := "Тест2"; - как будто ты пишешь слово Тест2. В отличии от TypeText ты как бы это слово пишешь и тут же его выделяешь, чтобы к этому выделению применить какие-то действия.

MsWord.Selection.Font.Bold := 1; - ты делаешь выделенную фразу жирной. (а выделено у нас Тест2).

MsWord.Selection.EndKey; - как будто ты жмешь клавишу End. То есть, курсор переходит к концу строки. Выделение снимается.

MsWord.Selection.Font.Bold := 0; - отменяешь стиль"жирный". Чтобы последующие написанные слова были без выделения жирным.

MsWord.Selection.TypeText(" тест3"); - как будто просто пишешь слово Тест3

MsWord.Visible := True; - делаешь ворд видимым на экране. Этот пункт надо выполнять обязательно, иначе ворд будет в памяти находится, но на экран не покажется. В тоже время не надо показывать раньше времени, чтобы пользователь не видел как там по полю курсор ползает в соответствии с коммандами.

Ну так вот, элементарный пример я тебе показал - можешь посмотреть его результаты. Все проще простого.

А дальше я делал вот как, чтобы узнать что еще можно делать. Открываеш Word, нажимаешь "Сервис->Макрос->Запись макроса" и делаешь руками что угодно -, оформление и т.д. Потом останавливаешь запись макроса и смотрищь какой макрос получился. Там будет записано все, что ты сделал руками, но на языке VB. При известном умении и пользуясь F1 на непонятных местах переводишь это все в Delphi. Получается все, что ты можешь ручками сделать в Word"е - можно сделать программно.
Тоже и к Excel"у применимо.

P.S. Может и ламерский подход, но за день разбирательств я полностью реализовал нужный мне функционал...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
1-1090587549
Alex_x
2004-07-23 16:59
2004.08.08
Как семулировать двойное нажатие клавиши


6-1086534680
lena19
2004-06-06 19:11
2004.08.08
на что открыт доступ на текущем компе (где прога запущена)


14-1090580851
syte_ser78
2004-07-23 15:07
2004.08.08
День недели


14-1089978128
pavel_pavel
2004-07-16 15:42
2004.08.08
Часто ли пьют программисты?


1-1090875187
ANT
2004-07-27 00:53
2004.08.08
Размер имеет значение!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский