Главная страница
    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.007 c
14-34216
Asteroid
2002-10-22 13:04
2002.11.11
О жизни и развитии


14-34220
MARK_
2002-10-23 00:10
2002.11.11
Здравствуйте, как обойти ограничение?


4-34287
Azbul
2002-09-26 10:27
2002.11.11
как програмно сделать чтобы народ в инет ходит не мог?


14-34184
kalishenko
2002-10-21 19:10
2002.11.11
Help me!


3-33904
Zloy
2002-10-22 02:47
2002.11.11
Приветствую!!! Полное Сохранение таблицы Парадокс на диск





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