![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание таблицы в word [D7, XP]
Newss © (2008-07-15 13:06:00)Здравствуйте.
Вопрос такой. Я из дельфей создаю таблицу в ворде. Делаю это так:
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 16:19:00) [1]
> Newss (15.07.08 15:39) [5]
> Получается не совсем так. Теперь таблица создается в следующей
> ячейке предыдущей таблицы,
Так куда сдвинул, там и создается ;)
Сдвинь на несколько позиций и посмотри...
Newss (2008-07-15 15:39:00) [2]
> Words.selection.movedown(unit_,count,emptyparam); // сдвигаем
> курсор на одну позицию вниз — выходим за рамки
> //таблицы и попадаем в свободное место под таблицей.
Получается не совсем так. Теперь таблица создается в следующей ячейке предыдущей таблицы, но все равно не под ней, а внутри. И по-прежнему есть ошибка "Запрашиваемый номер семейства не существует". Почему-то не получается обратиться к таблице через Item(2).
Smile (2008-07-15 13:57:00) [3]Пардон
> Selection.Paragraphs.Format.Alignment:= wdAlignParagraph Center;
Smile (2008-07-15 13:56:00) [4]
> Помогите, пожалуйста, создать вторую таблицу.
Что-то вроде:
var: count,unit_: olevariant;// сдвигаем курсор на одну позицию вниз — выходим за рамки
...
Count:= 1;
unit_:=wdparagraph;
Words.selection.movedown(unit_,count,emptyparam);
//таблицы и попадаем в свободное место под таблицей.
Примерно так, точнее не помню:(
> И еще маленький вопросик: как выровнять текст по центру?
Selection.Paragraphs.Format.Alignment:= wdAlignParagraphRight;
Ляпа (2008-07-15 13:50:00) [5]
> Таблица начинает создаваться в первой ячейке первой таблицы
Для передвижения курсора по тексту документа можно использовать следующий набор команд:
Word.Selection.MoveRight;// передвинуть курсор на символ вправо
Word.Selection.MoveLeft;// передвинуть курсор на символ влево
Word.Selection.MoveUp;// на строку вверх
Word.Selection.MoveDown;// на строку вниз
Word.Selection.TypeParagraph;// добавление нового абзаца
Костик (2008-07-15 13:11:00) [6]Созадвай таблицы лучше в икселе легче будет во-первых... а во-вторых, не знаю как там в ворде, не пробывал, а в икселе еслть отличный редактор визуал бейсик, который покажет тебе все константы..)