Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в Word создать таблицу? [Delphi, Windows]


Barloggg ©   (2006-10-23 17:02:00) 

в примере KOLWord есть впечатывание текста... это я понял. дальше мне нужно создать таблицу...
а как быть с таблицей.

макрос создания таблицы в ворде (укороченный) выглядит так:
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=2

вроде все просто
Но как он должен выглядеть в тексте программы?


max727   (2007-06-28 16:40:00) [1]


program HelloWorld;

uses
 KOL, KOLWord;

var W:PWordDocument;

begin
 W:=NewWordDocument;
 W.ObjInvoke( 'Add', [], nil );
 W.ObjName := 'Selection';
 W.ObjInvoke( 'TypeText', [ sParam('Hello, Wor(L)d!') ], nil );
 W.ObjName := 'Application';
 W.ObjPropBool['Visible']:=True;
 MsgOK('По идее должен показаться ворд, но его нет!');
 W.Free;
end.


что неправильно?


max727   (2007-06-27 18:51:00) [2]

люди, а как сделать ворд видимым?


Аид   (2007-05-14 05:38:00) [3]

просмотрел уже кучу статей но везде под VCL формат т.е.
MsWord := CreateOleObject('Word.Application');
MsWord.Documents.Add(fileName, EmptyParam);
MsWord.Selection.goto(What, Which, Count, Name);
MsWord.Run('NextCell');


под КОЛ же работает только создание/открытие документа, запись текста и выполнение макроса. Кто разобрался в чем грабли?

на метку к примеру не переходит
program Base;

uses
 KOL,Windows,KOLword;
var W: PWordDocument;
begin
 W := NewWordDocument;
 W.ObjName := 'Documents';
 W.ObjInvoke( 'Open', [sParam('C:\1.doc')], nil );
 W.ObjName := 'Application';
 W.ObjInvoke( 'Run', [ sParam('s2') ], nil );
 W.ObjName := 'Documents';
 W.ObjName := 'Selection';
  W.ObjInvoke( 'GoTo', [ sParam('wdGoToBookmark,0,"c1"') ], nil );
 W.ObjInvoke( 'TypeText', [ sParam('xXx') ], nil );
 W.ObjName := 'Application';
 W.ObjInvoke( 'Run', [ sParam('s_exit') ], nil );
 W.Free;
end.


Vedun   (2006-10-24 17:08:00) [4]

Посмотри на delphiworld.narod.ru
Большое собрание статей. Смотри раздел "Технологии" --> "OLE Automation MSOffice". Там около сотни статей на тему, как из Делфи работать с оффисом: создавать документы, вносить в них данные и др. Все это применимо к KOL. Я тут недавно делал программу для некоторых расчетов (на KOL конечно). Она брала данные из Excel. Размер проги получился большой, 130 кб. Но это все равно меньше, чем VCL.


Vedun   (2006-10-24 17:07:00) [5]

Посмотри на delphiworld.narod.ru
Большое собрание статей. Смотри раздел "Технологии" --> "OLE Automation MSOffice". Там около сотни статей на тему, как из Делфи работать с оффисом: создавать документы, вносить в них данные и др. Все это применимо к KOL. Я тут недавно делал программу для некоторых расчетов (на KOL конечно). Она брала данные из Excel. Размер проги получился большой, 130 кб. Но это все равно меньше, чем VCL.


Barloggg   (2006-10-24 10:51:00) [6]

ага... вкурил статью
http://www.delphimaster.ru/articles/dbtoword/index.html

Но это в VCl. ну и ладно. для начала сойдет.
но вопрос я не снимаю.

кто может объяснить принцип перевода этого под KOL? а то я пока еще обезьяна с гранатой...


Barloggg   (2006-10-24 10:28:00) [7]

хмм... без документации не проще.
сам comobj я нашел. но толку?

знает ли кто-нибудь конкретные книжки по работе с вордом из среды программирования? пусть на аглицком.


Vedun   (2006-10-23 20:31:00) [8]

Проще конечно работать с оффисом через модуль ComObj. Но он, зараза, весит довольно много.


Vladimir Kladov   (2006-10-23 17:44:00) [9]

:= ?


Barloggg   (2006-10-23 17:07:00) [10]

А вот полный код создания
   ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=5, NumColumns:= _
       3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
       wdAutoFitFixed


логично предположить что код должен быть такой
 W.ObjName := 'ActiveDocument.Tables';
 W.ObjInvoke('Add', [ sParam('Range:=ActiveDocument.Selection.Range, NumRows:=5, NumColumns:=3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed') ], nil );

но это не так...

где читать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо