Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Таблица Word   Найти похожие ветки 

 
Strori   (2005-02-25 16:16) [0]

Есть данные в форме, которые импортируются в ворд. В виде таблицы. Как сделать видимыми границы ячеек? Сейчас они отображаются в виде линии состоящей из точек. Обозначаются. Ятак понимаю, нужно добавить параметры в строку
Tables:=Doc.Tables.Add(Word.Selection.Range, 12, 2, EmptyParam, EmptyParam);
но какие именно? И...правильно ли я полагаю?


 
Fedia ©   (2005-02-26 07:58) [1]

>И...правильно ли я полагаю?
Судя по всему правильно.
>но какие именно?

var
 WordApp, Sel: variant;
begin
  WordApp:=CreateOleObject("Word.Application");
  WordApp.Visible:=true;
  WordApp.Documents.Add();
  WordApp.DisplayAlerts:=false;

  Sel:=WordApp.Selection;
  Sel.Find.ClearFormatting;

  Sel.Tables.Add(Range:=Sel.Range, NumRows:=12, NumColumns:=
       2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=
       wdAutoFitFixed);
end;

PS. все линии состоят из точек :)


 
Strori   (2005-02-26 12:26) [2]

А есть инфа по параметрам вывода в ворд? Что такое DefaultTableBehavior к примеру. Если это есть в справке дельфи подскажи где искать? :) Как фигуру нарисовать, линию...ну и тп.


 
atruhin ©   (2005-02-26 12:51) [3]

Это не в справке Delphi а в справке VBA, достаточно подробно.
А вообще обычно алгоритм такой: Делаем в Word "Макрос.Начать Запись", производим нужные манипуляции, "Макрос.Закончить запись", далее открываем макрос и смотрим текст, удаляем лишнее.


 
Strori   (2005-02-26 14:43) [4]

Бэйсик значит...хорошо покопаю там.

Вопрос по привденному коду: как там вставить значение в ячейку таблицы? В моём варианте все было просто:
Tables.Rows.Item(8).Cells.Item(2).Range.Text:=Edit8.Text;
А в коде Fedia как?


 
YurikGL ©   (2005-02-26 14:46) [5]

http://www.delphimaster.ru/articles/dbtoword/index.html

Procedure TForm1.TableLineSet;
Begin
 w1.Selection.Cells.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
 w1.Selection.Cells.Borders.Item(wdBorderRight).LineStyle:= wdLineStyleSingle;
 w1.Selection.Cells.Borders.Item(wdBorderHorizontal).LineStyle:= wdLineStyleSingle;
 w1.Selection.Cells.Borders.Item(wdBorderTop).LineStyle:= wdLineStyleSingle;
 w1.Selection.Cells.Borders.Item(wdBorderBottom).LineStyle:= wdLineStyleSingle;
 w1.Selection.Cells.Borders.Item(wdBorderVertical).LineStyle:= wdLineStyleSingle;

End;

А вообще http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1084962208 читать интересное о себе


 
Fedia ©   (2005-02-26 14:58) [6]

>Strori   (26.02.05 14:43) [4]
Я не пробовал, но разве вариант

Tables:=Doc.Tables.Add(Word.Selection.Range, 12, 2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=
      wdAutoFitFixed);

не работает?


 
Strori   (2005-02-26 15:32) [7]

Fedia, не работает.Пишет ошибку синтаксиса DefaultTableBehavior:=wdWord9TableBehavior перед двоеточием...


 
Fedia ©   (2005-02-26 23:18) [8]

А если так (иногда приходится экспериментировать):

Tables:=Doc.Tables.Add(Word.Selection.Range, 12, 2, wdWord9TableBehavior, wdAutoFitFixed);


 
Strori   (2005-02-27 02:32) [9]

тоже пробовал.Пишет Types of actual and format var parameters must be identical


 
Fedia ©   (2005-02-27 05:37) [10]

>Strori   (27.02.05 02:32) [9]
В твоем примере не понятно, чему у тебя равна переменная Doc.
В случае, если переменная Word из [1] ассоциирована у тебя с самим документом, т.е. Word:=CreateOleObject("Word.Application"),
то должен работать вариант:
Tables:=Word.Selection.Tables.Add(Word.Selection.Range, 12, 2, wdWord9TableBehavior, wdAutoFitFixed);
В противном случае вот рабочий пример:

var
Word, tables: variant;
begin
 Word:=CreateOleObject("Word.Application");
 Word.Visible:=true;
 Word.Documents.Add();
 Word.DisplayAlerts:=false;

 Tables:=Word.Selection.Tables.Add(Word.Selection.Range, 12, 2,
   wdWord9TableBehavior, wdAutoFitFixed);
 Tables.Rows.Item(8).Cells.Item(2).Range.Text:="1";
end;


Как еще один, но более удобный и быстрый вариант работы с таблицами можешь попробовать следующий:

var
Word, Sel: variant;
tmp: string;
i, n: integer;
begin
 Word:=CreateOleObject("Word.Application");
 Word.Visible:=true;
 Word.Documents.Add();
 Word.DisplayAlerts:=false;

 Sel:=Word.Selection;
 Sel.Find.ClearFormatting;

 for i:=1 to 10 do
 begin
   for n:=1 to 10 do
   tmp:=tmp + IntToStr(i*n) + #9;
   tmp[Length(tmp)]:=#10;
 end;
 Sel.TypeText(Text:=tmp);
 Sel.MoveUp(Unit:=wdLine, Count:=10, Extend:=wdExtend);

 Sel.ConvertToTable(Separator:=wdSeparateByTabs, NumColumns:=10,
   NumRows:=10, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=
   wdAutoFitFixed);
 Sel.MoveDown(Unit:=wdLine, Count:=1);
end;



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

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
1-1109522141
AAAAA
2005-02-27 19:35
2005.03.13
Disconnect от TExcelApplication в ПОТОКЕ..


1-1109661973
Sancho
2005-03-01 10:26
2005.03.13
изменить настройки Locale


8-1101423024
ункновн
2004-11-26 01:50
2005.03.13
Обработка изображения в Direct3D


4-1107290316
kluben
2005-02-01 23:38
2005.03.13
Защищенный режим процессора


14-1109084511
Cosinus
2005-02-22 18:01
2005.03.13
Сталкивался кто-нибудь с "бинарными" шрифтами?