Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Создание таблицы в word   Найти похожие ветки 

 
Newss   (2008-07-15 13:06) [0]

Здравствуйте.
Вопрос такой. Я из дельфей создаю таблицу в ворде. Делаю это так:
Var Words, sel,T : Variant;
  Words := CreateOleObject("Word.Application");
  Words.Visible := True;
  Words.Documents.Add;
  Words.Selection.Font.Size := 12;
  Words.Selection.Font.Bold := true;
  Words.Selection.TypeText("Исходные данные"+ #13 + #13);
  Words.Selection.Font.Bold := false;
  sel1:=Words.Selection.Range;
  sel1.Tables.Add(sel1,n+2,7,EmptyParam,EmptyParam); //n – количество строк, задаваемое в программе
  T1:=Words.ActiveDocument.Tables.Item(1);

Далее идет заполнение ячеек созданной таблицы данными, рассчитанными в программе. После окончания заполнения этой таблицы мне нужно под ней создать следующую. Делаю по той же схеме - возникает ошибка. Таблица начинает создаваться в первой ячейке первой таблицы, а когда доходит до команды T2:=Words.ActiveDocument.Tables.Item(2);, вылетает ошибка "Запрашиваемый номер семейства не существует".
Помогите, пожалуйста, создать вторую таблицу.
P. S. И еще маленький вопросик: как выровнять текст по центру?
Спасибо.


 
Костик   (2008-07-15 13:11) [1]

Созадвай таблицы лучше в икселе легче будет во-первых... а во-вторых, не знаю как там в ворде, не пробывал, а в икселе еслть отличный редактор визуал бейсик, который покажет тебе все константы..)


 
Ляпа   (2008-07-15 13:50) [2]


> Таблица начинает создаваться в первой ячейке первой таблицы


Для передвижения курсора по тексту документа можно использовать следующий набор команд:

Word.Selection.MoveRight;// передвинуть курсор на символ вправо
Word.Selection.MoveLeft;// передвинуть курсор на символ влево
Word.Selection.MoveUp;// на строку вверх
Word.Selection.MoveDown;// на строку вниз
Word.Selection.TypeParagraph;// добавление нового абзаца


 
Smile   (2008-07-15 13:56) [3]


> Помогите, пожалуйста, создать вторую таблицу.

Что-то вроде:
var: count,unit_: olevariant;
...
Count:= 1;
unit_:=wdparagraph;
Words.selection.movedown(unit_,count,emptyparam);
// сдвигаем курсор на одну позицию вниз — выходим за рамки
//таблицы и попадаем в свободное место под таблицей.

Примерно так, точнее не помню:(

> И еще маленький вопросик: как выровнять текст по центру?

Selection.Paragraphs.Format.Alignment:= wdAlignParagraphRight;


 
Smile   (2008-07-15 13:57) [4]

Пардон

> Selection.Paragraphs.Format.Alignment:= wdAlignParagraphCenter;


 
Newss   (2008-07-15 15:39) [5]


> Words.selection.movedown(unit_,count,emptyparam); // сдвигаем
> курсор на одну позицию вниз — выходим за рамки
> //таблицы и попадаем в свободное место под таблицей.

Получается не совсем так. Теперь таблица создается в следующей ячейке предыдущей таблицы, но все равно не под ней, а внутри. И по-прежнему есть ошибка "Запрашиваемый номер семейства не существует". Почему-то не получается обратиться к таблице через Item(2).


 
Ляпа   (2008-07-15 16:19) [6]


> Newss   (15.07.08 15:39) [5]


> Получается не совсем так. Теперь таблица создается в следующей
> ячейке предыдущей таблицы,

Так куда сдвинул, там и создается ;)
Сдвинь на несколько позиций и посмотри...



Страницы: 1 вся ветка

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
2-1215788028
GrieVeR-13
2008-07-11 18:53
2008.08.17
Событие OnTimer


15-1214636002
Kolan
2008-06-28 10:53
2008.08.17
Все отстрелялся, теперь я учёный! :)


2-1216092785
Гость
2008-07-15 07:33
2008.08.17
Событие OnClick


2-1215755547
Андрей Пл
2008-07-11 09:52
2008.08.17
TDBNavigator в вертикальном виде?


2-1215985907
Zivas
2008-07-14 01:51
2008.08.17
Реально ли сделать это на делфи?