Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 66

Экспорт текста в word из delphi

19.11.2014, 23:44. Показов 5564. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем надо что бы после нажатия кнопки все данные экспортировались в word. Без открытия word'a (что бы в папке с программкой появился word'овский файлик для отправки на почту).

Нашёл у вас код для экспорта, но он немного не подходит.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
procedure TGlavForm.Button24Click(Sender: TObject);
 
const
  wdAlignParagraphCenter = 1;
  wdAlignParagraphLeft = 0;
  wdAlignParagraphRight = 2;
var
  wdApp, wdDoc, wdRng, wdTable: Variant;
begin
  try
    wdApp := CreateOleObject('Word.Application');
  except
    ShowMessage('Не удалось запустить MS Word. Действие отменено.');
    Exit;
  end;
 
  //Делаем видимым окно MS Word.
  wdApp.Visible := True;
  //Создаём новый документ.
  wdDoc := wdApp.Documents.Add;
  //Отключение перерисовки окна MS Word. - Для ускорения работы.
  wdApp.ScreenUpdating := False;
  try
    wdRng := wdDoc.Range;
    //1 текст.
    wdRng.InsertBefore('ПРЕДВАРИТЕЛЬНОЕ ОПИСАНИЕ ЗАДАНИЯ (БРИФ)');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := false;
    wdRng.Font.Size := 12;
    //Выравнивание по центру.
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;;
    //Добавляем перевод строки.
    wdRng.InsertAfter(#13#10);
//Формируем новый диапазон непосредственно за текущим диапазоном.
    wdRng.Start := wdRng.End;
    //Сброс параметров параграфа.
    wdRng.ParagraphFormat.Reset;
    //Сброс параметров шрифта.
    wdRng.Font.Reset;
    //Добавляем перевод строки.
    wdRng.InsertAfter(#13#10);
    //2 текст.
    wdRng.InsertBefore('на производство видеоролика');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := True;
    wdRng.Font.Size := 18;
    //Выравнивание.
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.ParagraphFormat.Reset;
    wdRng.Font.Reset;
    //3 текст.
    wdRng.InsertBefore(' Бриф должен включать в себя всю необходимую информацию для работы над проектом.');
    wdRng.InsertBefore('         Бриф заполняется или координируется человеком, ответственным за приём проекта и его оценку на всех этапах разработки. Вся информация, полученная от Клиента, является конфиденциальной и не подлежит разглашению третьим лицам.');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    //4 текст.
    wdRng.InsertBefore('         Если некоторые поля вы считаете не нужными - не заполняйте их.');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    //5 текст.
    wdRng.InsertBefore('         Заранее спасибо!');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
    //6 текст.
    wdRng.InsertBefore('E-mail:                                                 '+Edit9.Text+ #13#10);
    wdRng.InsertBefore('Контактное лицо, должность:        '+Edit8.Text+ #13#10);
    wdRng.InsertBefore('www:                                                    '+Edit7.Text+ #13#10);
    wdRng.InsertBefore('Факс:                                                   '+Edit6.Text+ #13#10);
    wdRng.InsertBefore('Телефон:                                             '+Edit5.Text+ #13#10);
    wdRng.InsertBefore('Срок исполнения:                             '+Edit4.Text+ #13#10);
    wdRng.InsertBefore('Дата заполнения:                              '+Edit3.Text+ #13#10);
    wdRng.InsertBefore('Предполагаемый бюджет:              '+Edit2.Text+ #13#10);
    wdRng.InsertBefore('Клиент:                                               '+Edit1.Text+ #13#10);
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := True;
    wdRng.Font.Size := 11;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
    //7 текст.
    wdRng.InsertBefore('ОБЩИЕ ВОПРОСЫ (необходимы для разработки концепции видеоролика).');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
 
  finally
    //Включение перерисовки окна MS Word.
    wdApp.ScreenUpdating := True;
  end;
Добавлено через 2 часа 38 минут
Разобрался сам!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
procedure TGlavForm.Button24Click(Sender: TObject);
 
const
  wdAlignParagraphCenter = 1;
  wdAlignParagraphLeft = 0;
  wdAlignParagraphRight = 2;
var
  wdApp, wdDoc, wdRng, wdTable: Variant;
begin
  try
    wdApp := CreateOleObject('Word.Application');
  except
    ShowMessage('Не удалось запустить MS Word. Действие отменено.');
    Exit;
  end;
 
  //Создаём новый документ.
  wdDoc := wdApp.Documents.Add;
  //Отключение перерисовки окна MS Word. - Для ускорения работы.
  wdApp.ScreenUpdating := False;
  try
    wdRng := wdDoc.Range;
 
    //1 текст.
    wdRng.InsertBefore('ПРЕДВАРИТЕЛЬНОЕ ОПИСАНИЕ ЗАДАНИЯ (БРИФ)');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := false;
    wdRng.Font.Size := 12;
    //Выравнивание по центру.
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;;
 
    //Добавляем перевод строки.
    wdRng.InsertAfter(#13#10);
//Формируем новый диапазон непосредственно за текущим диапазоном.
    wdRng.Start := wdRng.End;
    //Сброс параметров параграфа.
    wdRng.ParagraphFormat.Reset;
    //Сброс параметров шрифта.
    wdRng.Font.Reset;
    //Добавляем перевод строки.
    wdRng.InsertAfter(#13#10);
    //2 текст.
    wdRng.InsertBefore('на производство видеоролика');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := True;
    wdRng.Font.Size := 18;
    //Выравнивание.
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.ParagraphFormat.Reset;
    wdRng.Font.Reset;
    //3 текст.
    wdRng.InsertBefore(' Бриф должен включать в себя всю необходимую информацию для работы над проектом.');
    wdRng.InsertBefore('         Бриф заполняется или координируется человеком, ответственным за приём проекта и его оценку на всех этапах разработки. Вся информация, полученная от Клиента, является конфиденциальной и не подлежит разглашению третьим лицам.');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    //4 текст.
    wdRng.InsertBefore('         Если некоторые поля вы считаете не нужными - не заполняйте их.');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    //5 текст.
    wdRng.InsertBefore('         Заранее спасибо!');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
    wdRng.InsertAfter(#13#10#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
    //6 текст.
    wdRng.InsertBefore('E-mail:                                                 '+Edit9.Text+ #13#10);
    wdRng.InsertBefore('Контактное лицо, должность:        '+Edit8.Text+ #13#10);
    wdRng.InsertBefore('www:                                                    '+Edit7.Text+ #13#10);
    wdRng.InsertBefore('Факс:                                                   '+Edit6.Text+ #13#10);
    wdRng.InsertBefore('Телефон:                                             '+Edit5.Text+ #13#10);
    wdRng.InsertBefore('Срок исполнения:                             '+Edit4.Text+ #13#10);
    wdRng.InsertBefore('Дата заполнения:                              '+Edit3.Text+ #13#10);
    wdRng.InsertBefore('Предполагаемый бюджет:              '+Edit2.Text+ #13#10);
    wdRng.InsertBefore('Клиент:                                               '+Edit1.Text+ #13#10);
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := True;
    wdRng.Font.Size := 11;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
    //7 текст.
    wdRng.InsertBefore('ОБЩИЕ ВОПРОСЫ (необходимы для разработки концепции видеоролика).');
    wdRng.Font.Name := 'Times New Roman';
    wdRng.Font.Bold := False;
    wdRng.Font.Size := 11;
    wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
    wdRng.InsertAfter(#13#10);
    wdRng.Start := wdRng.End;
    wdRng.Font.Reset;
 
  finally
    //Включение перерисовки окна MS Word.
    wdApp.ScreenUpdating := True;
    wdApp.ActiveDocument.SaveAs(GetCurrentDir + '\file\' + Edit1.Text + '.doc\');
    wdApp.ActiveDocument.Close;
    wdApp.Quit;
  end;
 
end;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2014, 23:44
Ответы с готовыми решениями:

Экспорт из БД в Word в Delphi
Для создания отчёта в Word создал шаблон документа Shablon.doc сделал в нём закладки. Написал в delphi соответствующий код: procedure...

Экспорт из Delphi в Word
Имеется таблица в Delphi (Stringgrid12) и такая же таблица в документе Word с шапкой (первой колонкой), но без чисел. Напишите процедуру...

StringGrid->Word экспорт. Delphi
Здравствуйте, столкнулась с задачей: В пункте "Экспорт результатов» главного меню запрограммируйте процедуру «В документ ТХТ» обеспечив...

2
 Аватар для FaTaL-CS
73 / 74 / 23
Регистрация: 14.10.2013
Сообщений: 549
20.11.2014, 09:43
Цитата Сообщение от Артемка123 Посмотреть сообщение
wdApp.ActiveDocument.SaveAs(GetCurrentDir + '\file\' + Edit1.Text + '.doc\');
Здесь может быть ошибка, т.к. GetCurrentDir не всегда может возвращать папку с программой. лучше использовать ExtractFilePath (ParamStr(0)).
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 66
22.11.2014, 20:13  [ТС]
FaTaL-CS, спасибо, учту ��
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2014, 20:13
Помогаю со студенческими работами здесь

Экспорт данных из Delphi в Word
Подскажите пожалуйста где можно почитать материалы на тему экспорта данных из Delphi в Word

Экспорт и импорт между Delphi и Word
Привет) Объясните подробно, пожалуйста, как осуществить экспорт и импорт между Delphi и Word. Вот есть у меня объекты Edit1,Button1 и...

Замена текста в Word из Delphi
Здравствуйте Требуется заменить текст в ворде на текст из делфи. Делаю так (процедура на кнопке): w.Selection.Find.Text:='123'; ...

Экспорт в word
Я зашел в тупик! Мне необходимо открывать шаблон при нажатии на кнопку, но он будет открываться и сохраняться только по указанному пути,...

Экспорт в Word
Здравствуйте! Кто нибудь знает, как сделать экспорт данных из Delphi в Word, используя при этом редактор формул Word? Добавлено через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru