Вниз
Скачать: CL | DM;

Delphi+Word (разбивка текста на несколько колонок)   Найти похожие ветки 

← →
Petrovich   (2003-12-09 17:25) [0]

Кто-нибудь пробовал из Delphi в создаваемом Word-овском документе разбить кусочек текста (а именно - узенькой таблицы) на несколько колонок?
То есть создается документ Word. В нем создается куча таблиц с заголовками. Таблицы есть и широкие и узенькие. Так вот дабы уменьшить длину документа, узенькие таблицы желательно бы расположить в несколько колонок. Делаю все это в Worde и практически без изменений переношу текст макроса в Delphi.
Выделяю (как мне кажется, только какую-то одну :-) таблицу и делаю с выделенной таблицей преобразование количества колонок текста (а не количества колонок таблицы).

WordDoc.Tables.Item(WordDoc.Tables.Count).Select;
if WordApp.ActiveWindow.View.SplitSpecial<>wdPaneNone then
WordApp.ActiveWindow.Panes.Item(2).Close;
if WordApp.ActiveWindow.ActivePane.View.Type_<>wdPrintView Then
WordApp.ActiveWindow.ActivePane.View.Type_:=wdPrintView;
WordApp.Selection.PageSetup.TextColumns.SetCount(1);
EvenlySpaced:=False;

WordApp.Selection.PageSetup.TextColumns.EvenlySpaced:=EvenlySpaced;
WordApp.Selection.PageSetup.TextColumns.LineBetween:=EvenlySpaced;
if PaneNums>1 then begin
case PaneNums of
2: Width:=WordApp.CentimetersToPoints(7.62);
3: Width:=WordApp.CentimetersToPoints(4.67);
4: Width:=WordApp.CentimetersToPoints(3.19);
end;
Spacing:=WordApp.CentimetersToPoints(1.25);
EvenlySpaced:=False;
for i:=1 to PaneNums-1 do
WordApp.Selection.PageSetup.TextColumns.Add(Width,Spacing,EvenlySpaced);
end;

В результате заголовок перед таблицей имеет нужное число колонок, а таблица располагается в одной колонке (колонка - это Pane, а не Column). А нужно бы наоборот :-) Кто-нибудь копался так подробно в Worde? Столько много кода генерится в макросе в Worde именно для каждой таблицы, так что тут, вроде бы, все правильно. Но из Delphi не работает :-)


← →
skiph ©   (2003-12-10 11:51) [1]

Поподробнее: последний цикл у тебя такой и есть или ты приводишь его в сокращении?
Все дело в том, что согласно этому макросу ты делишь то, на чем у тебя стоит курсор (ибо Selection): если курсор у тебя стоит на заголовке, то и на колонки делиться будет заголовок (даже Word так делает), а чтобы поделить таблицу, то и курсор нужно устанавливать на таблицу.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
14-75318
Ske4er
2003-12-02 09:11
2003.12.23
Как долго можно не выключать компьютер?


14-75308
SPeller
2003-11-26 17:30
2003.12.23
Н-да... Спам в нашей стране процветает...


3-75125
Frag
2003-11-28 11:59
2003.12.23
Обработка огромного файла Excel


4-75460
Дремучий
2003-10-24 12:52
2003.12.23
Как поставить глобальный хук на смену языка ввода под NT?


14-75346
Думкин
2003-11-30 06:30
2003.12.23
С днем рождения! 30 ноября.




   Наверх