1 / 1 / 0
Регистрация: 27.10.2009
Сообщений: 9

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

11.05.2010, 12:22. Показов 10233. Ответов 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
33435 / 21539 / 8243
Регистрация: 22.10.2011
Сообщений: 36,963
Записей в блоге: 12
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru