Главная страница
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.019 c
6-1191929280
fd979
2007-10-09 15:28
2008.08.17
Как послать сообщение в виде HMTL?


2-1215686242
S@shka
2008-07-10 14:37
2008.08.17
Получить HWND окна зная hInstance


15-1214923574
pasha_golub
2008-07-01 18:46
2008.08.17
Отлов MemLeak ов


2-1215629693
Al
2008-07-09 22:54
2008.08.17
Как сделать несколько Hotkey s?


10-1148780842
y307
2006-05-28 05:47
2008.08.17
Вызов GetActiveOleObject или CreateOleObject