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

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

Как в Word вставить таблицу? [D5, Win95/98]


andr ©   (2002-03-26 14:52:00) 

Как в Word вставить таблицу и заполнить её значениями?
Соединение с Word с помощью TWordApplication и TWordDocument.
Приведите, если не затруднит, небольшой пример.


AFROLOV   (2002-03-26 16:29:00) [1]

Можно и без TWordApplication
Var
MSWord:Variant;
..
begin
MSWord:=CreateOleObject("Word.Application");
...

MSWord.ActiveDocument.Tables.Add(MSWord.ActiveDocument.Selection.Range,4,3,1,1);//Создание таблицы 4х3

MSWord.ActiveDocument.Tables(1).Cell(1, 1).Range.InsertAfter ("Cell 1,1")//Заносим текст в ячейку таблицы

end;

Как работать с таблицами посмотри в справке по VBA.
А так же юзай MacroRecorder. (Он за тебя почти всю работу делать будет.)


Толик   (2002-03-26 16:23:00) [2]

Сделать это можно по разному. Как вариант:

uses
Word2000;//этот файл лежит скорее всего в ..Delphi6/Ocx/Servers

procedure TForm1.Button2Click(Sender: TObject);
var
Template, OpenAsTemplate, DefaultTableBehavior, AutoFitBehavior, Unit_, Count, MoveType: OleVariant;
WordDocs: Documents;
WordDoc: _Document;
Range: Word2000.Range;
WordTables: Tables;
WordSel: Selection;
begin
WordApp := CoWordApplication.Create();
Template := "Normal";
OpenAsTemplate := FALSE;
WordDocs := WordApp.Documents;
WordDoc := WordDocs.AddOld(Template, OpenAsTemplate);
Range := WordDoc.Range(EmptyParam, EmptyParam);
WordTables := WordDoc.Tables;
DefaultTableBehavior := wdWord9TableBehavior;
AutoFitBehavior := wdAutoFitFixed;
WordTables.Add(Range, 10, 3, DefaultTableBehavior, AutoFitBehavior);
WordSel := WordApp.Selection;
WordSel.TypeText("некий текст");
Unit_ := wdCharacter;
Count := 2;
MoveType := wdMove;
WordSel.MoveRight(Unit_, Count, EmptyParam);
WordSel.TypeText("ещё какой-то текст");
Unit_ := wdLine;
Count := 1;
WordSel.MoveDown(Unit_, Count, MoveType);
WordSel.TypeText("а вот и ещё данные");
WordApp.Visible := TRUE;
end;

Сразу хочу предупредить, что этот пример совсем не оптимизирован, т.к. был написан прямо сходу. Он был написан на Delphi6 для Office2000.

А вообще совет на будущее: открываешь Ворд, выбираешь пункт меню Сервис-Макрос-Начать_запись. Потом делаешь в в Ворде всё, что ты хочешь, затем выбираешь пункт меню Сервис-Макрос-Макросы, выбираешь свой макрос, открываешь его в редакторе VB и смотришь, как все твои действия понимает Ворд. В Делфях пишешь точно так же, в смысле получаешь интерфейсы и вызываешь нужные ф-и. Названия их как правило соответствуют тому, что написано в редакторе VB.


andr   (2002-03-26 15:31:00) [3]

там есть примеры для Dlphi 1 и т.п.
А надо для соединения с Word с помощью TWordApplication и TWordDocument.


aus   (2002-03-26 15:16:00) [4]

Воспользуйся поиском по конференции, там все есть.


Наверх

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