Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.05.2012, 20:44
MaKKeY MaKKeY вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 4
Репутация: 10
По умолчанию Работа с таблицей из файла-шаблона

Добрый вечер. Ребята, помоги разобраться как работать с таблицей в Word из файла-шаблона (.dot). Суть такова: подключаю экземпляр Word'а, открываю файл-шаблон - с этим все в порядке; затем необходимо внести в 1-ую ячейку таблицы данные из combobox1, во 2-ую ячейку данные из combobox2, в 3-юю ячейку таблицы данные из combobox3, затем, при нажатии на кнопку, занести эти данные в таблицу и необходимо создать под этой строкой еще одну и чтобы можно было опять заполнять эти ячейки из этих же combobox'ов и так до n строк.
P.S. Изображение таблицы (1, 2 и 3 - ячейки, в которые необходимо внести данные, а затем под этой строкой создать еще одну)

Необходимо через Delphi реализовать.
Ответить с цитированием
  #2  
Старый 14.05.2012, 20:51
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

А как реализована работа с Word?
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 14.05.2012, 21:01
MaKKeY MaKKeY вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 4
Репутация: 10
По умолчанию

Ну, как обычно:

Код:
try
  W:=GetActiveOleObject('Word.Application');
  W.Visible:=true;
 except
  try
   W:=CreateOleObject('Word.Application');
   W.Visible:=true;
  except
   showmessage ('бла-бла, неважен текст');
end;
end;
end;
Bargest: код должен быть оформлен тегами.

Потом просто добавляю документ w.documents.add (ExtractFileDir(Application.ExeName)+'\primer.dot' );
А вот дальше надо как-то с таблицей работать, а я не знаю, как это реализовать.

Последний раз редактировалось Bargest, 14.05.2012 в 21:15.
Ответить с цитированием
  #4  
Старый 14.05.2012, 21:05
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Самое первое с чего стоит начать, так это немного подправить (есть такая возможность?) шаблон. В ячейку куда будет вставляться первое значение (комбобокса1), следует поставить метку. Например, #begin#. Я лично всегда так делаю, никогда не подводил метод. А потом просто по ячейкам табуляцией "гулять".
__________________
Google в помощь
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
MaKKeY (14.05.2012)
  #5  
Старый 14.05.2012, 21:10
MaKKeY MaKKeY вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 4
Репутация: 10
По умолчанию

Возможность, конечно же, есть, но вот хорошо: вставил метку, а вот потом как дальше? Вот бы просто программный пример. Не знаю просто вообще работу с Word и таблицами.
Ответить с цитированием
  #6  
Старый 14.05.2012, 21:12
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  w.Selection.HomeKey(6); //идем в самое начало документа, делается всегда на всякий случай перед поиском.
  w.Selection.Find.Text:= '#begin#';
  w.Selection.Find.Execute; //Находим нашу метку
  //Так как мы уже в нужной ячейке и у нас выделена метка, то просто пишем нужное значение
  w.Selection.TypeText(Combobox1.Text);
  w.Selection.MoveRight(12); //переход в следующую ячейку
  w.Selection.TypeText(Combobox2.Text);
  w.Selection.MoveRight(12);
  w.Selection.TypeText(Combobox3.Text);
end;
А если нужно создать новую строку, просто прописываем
Код:
w.Selection.MoveRight(12);
когда находимся в третьем столбце. Word автоматически добавит строку и встанет в первую ячейку новой строки.
__________________
Google в помощь

Последний раз редактировалось Ildar-tsr, 14.05.2012 в 21:19.
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
MaKKeY (14.05.2012)
  #7  
Старый 14.05.2012, 21:53
MaKKeY MaKKeY вне форума
Прохожий
 
Регистрация: 14.05.2012
Сообщения: 4
Репутация: 10
По умолчанию

Не хочет создавать новую строку: "Метод или свойство недоступны, поскольку некоторые или все объекты не ссылаются ссылаются на таблицу".
Ответить с цитированием
  #8  
Старый 14.05.2012, 21:56
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Надо проверять, стоит ли курсор в последнем столбце. В общем конечно вам сюда или по соответствующим запросам в поисковых системах.
P.S. Если уж вообще невмоготу будет, то пишите в личные сообщения.
__________________
Google в помощь
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
MaKKeY (14.05.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025