Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 27.10.2009
Сообщений: 9

Выгрузка данных в Word

11.05.2010, 12:22. Показов 10067. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Столкнулся со следующей проблемой при выгрузке данных. Имеется шаблон документа, в нем есть таблица 3x3.,запрос выдает фамилию пользователя , пароль и наличие или отсутствие прав, идея простая нужно поместить данные запроса в таблицу, вид примерно следующие :
Иванов 888 да
петров 666 нет
гусев 789 да

вот как я делаю
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
Query1->Active=true;
vVarApp = CreateOleObject("Word.Application");
vVarApp.OlePropertySet("Visible",true);
vVarDocs = vVarApp.OlePropertyGet("Documents");
vVarDoc = vVarDocs.OleFunction("Open","D:\\1\\5.docx");
vVarTable= vVarDoc.OlePropertyGet("Tables").OleFunction("Item",1);
vVarTable.OlePropertyGet("Rows").OlePropertySet("Alignment",1);
 
while(!Query1->Eof)
{
 for(int i=0;i<=3;i++)
 for(int j=0;j<=3;j++)
{
vVarCell=vVarTable.OleFunction("Cell",i,j);
  vVarCell.OleFunction("Select");
switch(j)
  {
   case 1:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text",StringToOleStr(Query1->FieldByName("user")->AsString));
   break;
   case 2:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text",StringToOleStr(Query1->FieldByName("password")->AsString));
   break;
   case 3:
    vVarCell.OlePropertyGet("Range").
             OlePropertySet("Text",StringToOleStr(Query1->FieldByName("prava")->AsString));
 
   }
 
  }
  Query1->Next();
  }
заполнение происходит, но не так как хотелось, сначала он заполняет все ячейки таблицы данными одного пользователя, перезаписывает данными другого . В итоге вся таблица заполняется последними данными в запросе.

Подскажите пожалуйста в чем моя ошибка
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2010, 12:22
Ответы с готовыми решениями:

Выгрузка данных в Word
Доброго времени суток. Расскажите пожалуйста как данные из dataGridViev вывести в шаблон ворда. Заранее спасибо.

Выгрузка данных в Exsel и Word?
Как мне выгрузить данные в Microsoft Word и Exsel. Спасибо за ответы.

Выгрузка данных в Word из Forms
Если есть примеры,очень нужно

43
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
05.04.2011, 12:41
Студворк — интернет-сервис помощи студентам
Вот нашёл и переделал открывает без ошибок
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
 Variant vVarApp,vVarDocs,vVarDoc,vVarTable,vVarAppWord,vVarCell,v,Doc;
 bool fStart;
if(!fStart)
 {
  try
  {
   vVarApp=CreateOleObject("Word.Application");
   fStart=true;
  }
  catch(...)
  {
   MessageBox(0, "Ошибка при открытии Word",
                 "Ошибка", MB_OK);
  return;
  }
 }
 //Сделаем приложение видимым
 vVarApp.OlePropertySet("Visible",true);
 //Переменной vVarDoc присваивается значение Documents - свойство объекта Word.Application, содежащее набор рабочих документов
 vVarDoc=vVarApp.OlePropertyGet("Documents");
 //Загружаем в Word шаблон документа
 vVarDoc.OleProcedure("Open", "C:\\word\\документ.doc");
 //Работать будем с последним нами созданным документом (Item = 1)
 vVarDoc=vVarDoc.OleFunction("Item",1);
 //Смотреть будем тоже на последний созданный документ т.е активируем его.
 vVarDoc.OleProcedure("Activate");
Ща подумаю над таблицей
0
71 / 5 / 0
Регистрация: 04.02.2011
Сообщений: 100
06.04.2011, 10:31
У меня вот этот код тоже без ошибок открывает word, и даже первую строку заполняет, а как дальше не знаю!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vVarApp = CreateOleObject("Word.Application");
vVarApp.OlePropertySet("Visible",true);
vVarDocs = vVarApp.OlePropertyGet("Documents");
vVarDoc = vVarDocs.OleFunction("Open","C:\\word\\äîêóìåíò.doc");
vVarTable= vVarDoc.OlePropertyGet("Tables").OleFunction("Item",1);
int i=1;
v=vVarTable.OlePropertyGet("Rows").OleFunction("Item",vVarTable.OlePropertyGet("Rows").OlePropertyGet("Count")).OleFunction("Select");
vVarCell=vVarTable.OleFunction("Cell",i+1,1);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",1);
vVarCell=vVarTable.OleFunction("Cell",i+1,2);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",ADOTable1->FieldByName("Naimenovanie")->AsString.c_str());
vVarCell=vVarTable.OleFunction("Cell",i+1,3);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",ADOTable1->FieldByName("EdIzmer")->AsString.c_str());
vVarCell=vVarTable.OleFunction("Cell",i+1,4);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",ADOTable1->FieldByName("Kolichestvo")->AsString.c_str());
vVarCell=vVarTable.OleFunction("Cell",i+1,5);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",ADOTable1->FieldByName("Symma")->AsString.c_str());
vVarCell=vVarTable.OleFunction("Cell",i+1,6);
vVarCell.OlePropertyGet("Range").OlePropertySet("Text",ADOTable1->FieldByName("Symma")->AsString.c_str());
i++;
Ошибка открытия была из-за этого
C++
1
vVarAppWord.OlePropertyGet("Selection").OleProcedure("InsertRowsBelow",1);
Добавлено через 21 час 43 минуты
Sasha, ну что, есть какие-нибудь идеи?!
0
0 / 0 / 0
Регистрация: 30.05.2016
Сообщений: 3
30.05.2016, 12:18
Подскажите пожалуйста, как мне быть.
Builder ругается на эту строчку кода:
C++
1
v=Word.OlePropertyGet("Selection").OlePropertyGet("Font");
Ошибка: E2108 Improper use of typedef 'Word'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33378 / 21502 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 11
30.05.2016, 14:20
Цитата Сообщение от Zarthy Посмотреть сообщение
как мне быть.
Поменять имя переменной. В примере выше, скажем, переменная называлась vVarApp, и никаких проблем подобного рода не было. Word - это typedef:
C++
1
    typedef unsigned short       Word;             // 0..65535
, отсюда и проблема. Не надо использовать идентификаторы, совпадающие с уже существующими.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2016, 14:20
Помогаю со студенческими работами здесь

Выгрузка данных из DataGridView в файл Word
Уважаемые программисты,прошу помощь( Пишу лабораторную работу, уже несколько дней мудохаюсь с ней:(( Нужно, по нажатии на кнопку,...

Выгрузка данных в шаблон word и excel
Добрый день. Нужна Ваша помощь по выгрузке данных в шаблон word и excel. Частично это все работает, но мне хотелось бы подправить....

Выгрузка данных из БД Access в Word средствами Delphi
Здравствуйте, ребята. У меня возникла следующая проблема. Есть MS Access. Средствами Delphi нужно выгрузить данные из одной из таблиц в...

Выгрузка массива данных из Access в поле со списком в Word
Доброго дня! Проблема в следующем. Из бд Access формируется документ Word (на основании шаблона .dot с закладками), в который...

Выгрузка данных в Word, можно ли это сделать через переменные самого документа
Задача заключается в следующем: необходимо заполнять шаблон документа word, т.е. есть документ, с расписанным текстом и полями,...


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

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru