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

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

Доступ из delphi в Microsoft Word [D6, WinXP]


Sloosar ©   (2008-05-17 11:18:00) 

Я занимаюсь программированием и паралельно пишу отчёты для родителей. Но меня задалбывает каждый раз всё писать и я подумал автоматизировать этот процес.
Полазил по интернету нашёл простой способ доступа из Делфи в Ворд но у меня есть пару вопросов по этой теме.


Stas   (2008-05-19 14:23:00) [1]

тому самому из Sloosar   (17.05.08 17:04) [7]?


ANB   (2008-05-19 14:17:00) [2]


> и FR вместо Word'a ?

Попробуй сказать об этом юзеру :)


Stas   (2008-05-19 13:56:00) [3]

Sloosar ©   (17.05.08 19:57) [10]
Может для автоматизации попробывать использовать BD вместо ini файлов
и FR вместо Word'a ?


ANB   (2008-05-19 12:42:00) [4]


> TStas ©   (19.05.08 00:08) [11]

Первый вариант очень тормозной и неудобный. Часто бывают глюки.

Стас, я же рассказывал тебе про вордовые поля. Очень шустро и без глюков.


TStas   (2008-05-19 00:08:00) [5]

По большому счету есть всего два способа делать что-то в Ворде из внешней программы:
1) Замена по шаблону. Т. е. беред некий документ, в нем какие-то части объявляем шаблоном и из заменяем на свои данные. Это хорошо, если многое в документе остаётся одним и тем же. (Пример: устав фирмы. Там почти всё одинаково у всех, меняется лишь название, учредители и т. д.)
2) Создание документа с нуля. Это годится, например, для доверенности, т. е. небольшого документа, у которого меняется всё. (Создать шаблон доверенности можно, но не нужно, т. к. он получится из одного слова)
Вариант (1) - это строковая замена в Ворде. Ворд чудестно понимает команду заменить строку на другую строку. Тут удобно, что он там сам с регистрами букв разбирается.
Какой способ выбрать - зависит от задачи.


Sloosar   (2008-05-17 19:57:00) [6]

А как можно загрузить в ComboBox данные из ini файла или собственного файла? Искал по сайту не нашол :-(


Сергей М.   (2008-05-17 17:31:00) [7]


> Данные отчёта вводятся с программы


Уточнение ценнейшее, слов нет.


> отчёты нужны Для Господа Бога


Честно признаться, ни разу еще не интересовался у него шаблонами)


> у меня существует 3 виды отчёта. И все они пишутся по одному
> и тому самому сценарию


С чем тебя и поздравляем.

Нам это оченьинтересно, сколько их там у тебя)


Sloosar   (2008-05-17 17:13:00) [8]

Вообще у меня существует 3 виды отчёта. И все они пишутся по одному и тому самому сценарию.


Sloosar   (2008-05-17 17:04:00) [9]

Сергей М.
Данные отчёта вводятся с программы.
А отчёты нужны Для Господа Бога.


Сергей М.   (2008-05-17 16:32:00) [10]

И насколько нам важно знать , для родителейтебе нужен отчет или, к примеру, для налоговой или для господа бога ?)


Сергей М.   (2008-05-17 16:31:00) [11]


> Sloosar   (17.05.08 16:26) [4]


А мданные для отчета откуда берутся ?


Sloosar   (2008-05-17 16:26:00) [12]

можна и не в формате ворда.


Сергей М.   (2008-05-17 15:41:00) [13]

"Родители", о коих ты печещься, "требуют" от тебя, сына, отчеты ? И именно в формате Ворда ?


Savek   (2008-05-17 12:22:00) [14]

par.Range.ParagraphFormat.Alignment := wdAlignParagraphCenter


Sloosar   (2008-05-17 11:20:00) [15]

вот пример кода
// ñîçäàåì ýêçåìïëÿð âîðäà
wordapp:=cowordApplication.Create;
 // äåëàåì åãî âèäèìûì
 WordApp.Visible:=true;
 // øàáëîí
 template:='Normal';
 // ñîçäàòü øàáëîí
 OpenAsTemplate:=false;
 // ÷òî-òî òèïà îïåðàòîðà with, ìîæíî áûëî è íàïðÿìóþ îáðàòèòüñÿ
 Docs:=WordApp.Documents;
 // äîáàâëÿåì äîêóìåíò
 Doc:=Docs.AddOld(template,OpenAsTemplate);

 // âûäåëèòü âñå
 ARange:=Doc.Range(EmptyParam,EmptyParam);
// ìàññèâ ïàðàãðàôîâ
 pars:=doc.Paragraphs;
 // ïåðåìåííàÿ - ïàðàìåòð
 template:=arange;
 // íîâûé ïàðàãðàô
 par:=pars.Add(template);
 // öâåò çåëåííûé
 par.Range.Font.ColorIndex:=1;
 // âñòàâëÿåì òåêñò
 par.Range.Font.Bold:=5;
 par.Range.Font.Underline:=1;
 par.Range.Font.Size:=16;
 par.Range.InsertBefore('Àêò');

Вопрос
№1 как сделать что бы текст выводился по центру?


Наверх

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