Главная страница
    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.008 c
14-34184
kalishenko
2002-10-21 19:10
2002.11.11
Help me!


1-34100
Ghost!
2002-10-30 22:00
2002.11.11
сложный вопрос


1-34030
sterran
2002-11-01 19:08
2002.11.11
Помогите найти компонент TextReport...


6-34153
Oleg_Gashev
2002-09-11 23:56
2002.11.11
beginthread & socket


14-34175
ZiLot
2002-10-21 16:55
2002.11.11
Help по базам данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский