Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-33910
Bill
2002-10-22 13:10
2002.11.11
Трабл с DBGrid ом


4-34313
Yus
2002-10-03 05:43
2002.11.11
Игровой порт


14-34237
Peter Gluhiy
2002-10-23 13:50
2002.11.11
Для любителей OnLine тестов!


1-33937
Cr@sh
2002-10-31 19:04
2002.11.11
Работа с Word`ом


1-34098
vvolkov
2002-10-31 13:51
2002.11.11
Сохранение TControl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский