Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизТаблица 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c