Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
ВнизРабота через Delphi с Word Найти похожие ветки
← →
Salvator (2002-10-28 22:41) [0]Мастера, как через Delphi, добавить в уже имеющийся документ Word таблицу и работать с ней?
← →
Snake (2002-10-29 05:20) [1]Попробуй примерно следующее:
procedure TForm1.Button1Click(Sender: TObject);
var R:Range;
Pkol,s:string;
begin
WA.AutoConnect:=false;
WA.AutoConnect:=true;
WA.Visible := True;
WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WD.ConnectTo(WA.ActiveDocument);
WD.Paragraphs.Add(EmptyParam);
R := WD.Paragraphs.Last.Range;
r.InsertAfter("Таблица");
WD.Paragraphs.Add(EmptyParam);
r.Paragraphs.Add(EmptyParam);
R := WD.Paragraphs.Last.Range;
r.Paragraphs.Format.Alignment:=0;
R := WD.Paragraphs.Last.Range;
S := "№" + #9 +
"Название" + #9 +
"Характер работы" + #9 +
"Выходные данные" + #9 +
"Число страниц" + #9 +
"Соавторы" + #9;
R.InsertAfter(S);
S := "а) печатные научные работы" + #9 +
"" + #9 +
"" + #9 +
"" + #9 +
"" + #9 +
"" + #9;
R.InsertAfter(S);
s:="1"+#9+"Строка 1"+#9+
"Строка 1-1"+#9+"Строка 1-2"+#9+
"Строка 1-3"+" с."+PKol+#9;
"Автор"+#9;
R.InsertAfter(S);
wd.Tables.Item(1).Rows.Item(RN).Cells.Merge;
wd.Tables.Item(1).Rows.Item(RN).Select;
WA.Selection.Font.Bold:=1;
wd.Tables.Item(1).Rows.Item(1).Select;
WA.Selection.Font.Bold:=1;
WA.Selection.Paragraphs.Format.Alignment:=1;
WD.Paragraphs.Add(EmptyParam);
r:=WD.Paragraphs.Last.Range;
WA.Selection.TypeParagraph;
end;
где WD - TWordDocument
WA - TWordApplication
Правда вот не поню, есть ли в D5 эти компоненты
← →
Salvator (2002-10-29 22:17) [2]Спасибо за ответ, но может быть я что-либо сделал не так, однако результат получился следующим:
Таблица
№ Название Характер работы Выходные данные Число страниц Соавторы а) печатные научные работы 1 Строка 1 Строка 1-1 Строка 1-2 Строка 1-3 с. Автор
это просто текст, разбитый на колонки, с помощью табов, а нужна таблица. Примерно так
Министерство образования РФ
Таблица 5 на 5
Если знаете как это сделать, то пожалуйста подскажите.
С уважением, Salvator
← →
[NIKEL] (2002-10-30 00:50) [3]На Builder`e писал как-то - может поможет
сначала создай конечно все объекты и подкл. к ворду
long num_rows = 5;
long num_col = 3;
Variant doc = word.OlePropertyGet("ActiveDocument");
Variant range = doc.OleFunction("Range");
range.OleProcedure("Collapse", (Variant)0);
//Вставляем
Variant tables = range.OlePropertyGet("Tables");
Variant table = tables.OleFunction("Add",
range, (Variant)num_rows, (Variant)num_col);
← →
skiph (2002-10-30 06:06) [4]vvWord.ActiveDocument.Tables.Add(vvWord.Application.Selection.Range,CountRows,CountColumns,1,0);
← →
Salvator (2002-10-30 19:51) [5]Спасибо за ответ, но в Delphi процедуры OlePropertyGet нет, есть ли идентичная ей процедура?
← →
[NIKEL] (2002-10-31 00:17) [6]просто пиши word.ActiveDocument; и т.д (подкл. ComObj и Excel200(?))
← →
Salvator (2002-11-01 19:18) [7]Заменил OlePropertyGet на ActiveDocument в результате получил следующий текст:
var R:Range;
Pkol,s:string;
num_rows,num_col:longint;
doc,range,table,tables:variant;
begin
WordApplication1.AutoConnect:=false;
WordApplication1.AutoConnect:=true;
WordApplication1.Visible := True;
WordApplication1.Documents.Add(EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
num_rows := 5;
num_col := 3;
doc := WordApplication1.ActiveDocument.Get_Tables;
range := doc.ActiveDocument;
range.ActiveDocument.Collapse;
tables := range.ActiveDocument.Tables;
table := tables.OleFunction.Add(
range,num_rows,num_col);
end;
Однако при запуске программы она выдает ошибку: Method “ActiveDocument” not supported by automation object. В чем глюк?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c