Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
11 / 11 / 4
Регистрация: 17.06.2010
Сообщений: 438

Вывод данных в Word (перевод кода)

28.05.2015, 23:20. Показов 2003. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Нашел такую статейку по выводу выбранных полей из таблицы, но в Delphi, проверил работает нормально:
C++
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
 папке с программой создайте папку shablon для хранения шаблонов и папку output для хранения полученных документов. Запустите Microsoft Word, введите произвольный текст документа с именами #tab#, #fam#, #imya#, #datar#. Сохраните файл в папку shablon. При этом в поле тип файла укажите Шаблоны документа, а имя файла Anketa. Для формирования анкеты нанесите на форму кнопку Button (Standard). В свойстве Caption укажите Анкета.
Для работы с COM сервером подключите в коде модуля формы файл comobj.
Для кнопки напишите код вида:
 
//пытаемся подключиться к серверу Word
try
    w:=getactiveoleobject('word.application');
//если подключение не удачно, то запускаем Word
except
    w:=createoleobject('word.application');
end;
 
/*ЗДЕСЬ СДЕЛАЛ 
//пытаемся подключиться к серверу Word
Variant w;
try
   {
    w=GetActiveOleObject("word.application");
    }
//если подключение не удачно, то запускаем Word
catch (...)
{
    w=CreateOleObject("word.application");
} */
 
 
 
//А ВОТ ДАЛЬШЕ НЕ ЗНАЮ КАК ПРАВИЛЬНО НАПИСАТЬ
//создаем новый документ на основе шаблона
w.documents.add(extractfilepath(application.ExeName)+'shablon\anketa.dot');
//заменяем имя #tab# на значение поля tab
w.selection.find.text:='#tab#';
 
w.selection.find.replacement.text:=ztable1.FieldByName('tab').Value;
 
w.selection.find.execute(replace:=2);
 
//заменяем имя #fam# на значение поля fam
 
w.selection.find.text:='#fam#';
 
w.selection.find.replacement.text:=ztable1.FieldByName('fam').Value;
 
w.selection.find.execute(replace:=2);
 
//заменяем имя #imya# на значение поля imya
 
w.selection.find.text:='#imya#';
 
w.selection.find.replacement.text:=ztable1.FieldByName('imya').Value;
 
w.selection.find.execute(replace:=2);
 
 
//заменяем имя #datar# на значение поля datar
 
w.selection.find.text:='#datar#';
 
w.selection.find.replacement.text:=ztable1.FieldByName('datar').Value;
 
w.selection.find.execute(replace:=2);
 
 
//сохраняем документ 
 
w.activedocument.saveas(filename:=extractfilepath(application.ExeName)+'output\anketa.doc');
 
//делаем видимым окно Word
 
w.visible:=true;
 
 
Полученный документ будет находится в папке output под именем anketa.doc.
Подскажит пожалуйста как правильно написать?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2015, 23:20
Ответы с готовыми решениями:

Работа с редактором кода VBA. Вывод данных в WORD
Дана матрица А(n,m). Найти максимумы в каждой строке и вывести массив квадратов этих элементов. (Ввод размерности матрицы осуществить...

Вывод штрих-кода на листе MS Word
Добрый день! Подскажите, необходимо на форме Ворда выводить штрих-код. Никак у меня это не получается сделать.Я зарегил в ситеме...

Сортировка значений в базе данных Access (перевод кода с C#)
У меня имеется код на c#, который обеспечивал сортировку значений по базе данных Access, а именно отсеивание ненужный значений, вот код: ...

5
Модератор
 Аватар для vxg
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,463
29.05.2015, 09:50
Цитата Сообщение от TYMON Посмотреть сообщение
Подскажит пожалуйста как правильно написать?
как правильно написать на C++?
0
11 / 11 / 4
Регистрация: 17.06.2010
Сообщений: 438
29.05.2015, 10:07  [ТС]
Да для Билдера
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33414 / 21523 / 8237
Регистрация: 22.10.2011
Сообщений: 36,923
Записей в блоге: 12
29.05.2015, 11:22
Лучший ответ Сообщение было отмечено TYMON как решение

Решение

TYMON,
C++
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
    // пытаемся подключиться к серверу Word
    Variant w;
    try
    {
        w = GetActiveOleObject("word.application");
    }
    // если подключение не удачно, то запускаем Word
    catch (...)
    {
        w = CreateOleObject("word.application");
    }
 
    // создаем новый документ на основе шаблона
    w.OlePropertyGet("Documents").OleProcedure("Add",
        StringToOleStr(ExtractFilePath(Application->ExeName) + "shablon\\anketa.dot"));
 
    // заменяем имя #tab# на значение поля tab
    // берешь данные откуда тебе нужно, из БД или еще откуда
    String sReplace = "myTab";
    w.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute",
        WideString("#tab#"), true, true, false, false, false, true, 1, false,
        WideString(sReplace), 2);
 
    // это все - по аналогии
 
    // заменяем имя #fam# на значение поля fam
    // заменяем имя #imya# на значение поля imya
    // заменяем имя #datar# на значение поля datar
 
    // сохраняем документ
    w.OlePropertyGet("ActiveDocument").OleProcedure("SaveAs",
        StringToOleStr(ExtractFilePath(Application->ExeName) + "output\\anketa.doc"));
 
    // делаем видимым окно Word
    w.OlePropertySet("Visible", true);
2
11 / 11 / 4
Регистрация: 17.06.2010
Сообщений: 438
30.05.2015, 13:30  [ТС]
volvo, Спасибо большое)
0
11 / 11 / 4
Регистрация: 17.06.2010
Сообщений: 438
09.06.2015, 23:56  [ТС]
Вопрос а как сделать если у меня ничего не содержит? потому как шаблон содержит например #opit#, а в базе это пусто поле
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2015, 23:56
Помогаю со студенческими работами здесь

Вывод данных в word
Добрый день. Существует проблема следующего характера: необходимо создать отчет в word, таким образом, чтобы данные располагались...

Вывод данных в word
какой код прописать, что бы когда вводишь данные для визитных карточек, эти данные выводились в word?

C# вывод данных в Word
Файл находится в папке Debug и всё работает нормально только на моем компьютере. При переносе проекта на другой ПК пишет, что файл...

Вывод данных в Word
Всем доброго времени суток! Тема стара как мир, пересмотрела кучу ссылок, но все равно работает не так, как нужно. Необходимо вывести...

Вывод данных в Word
Господа программисты, посоветуйте пожалуйста литературу, подробно-описывающую вывод информации из программы в Word


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru