关于在word中插入文字的问题 ( 积分: 100 )

L

lfc2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我想通过delphi编程,在word中任意我想要得地方插入文字。该怎么做,有没有这方面知道的谢谢了。
 
没人知道 还是我这问题太简单了没人爱回答阿,我自己顶
 
不是你的问题太简单,而是这方面的例子在网上汗牛充栋,呵呵。虽然我不知道,但是网上一找一大把。

如:http://www.delphibbs.com/delphibbs/dispq.asp?lid=560559
来自:天与地, 时间:2001-11-16 13:27:00, ID:733289
我对Word操作比较熟,我可以控制从数据库中取文字添加到Word模板中,可以操作word中的表。
可以向word贴图。
你应该在模板中设定标志字符,然后用系统来查找这些标志字符,然后从数据库中取数据进行替换。
可以多参看一下Office的在线帮助,多试一下吧。
先告诉你如何替换文字吧。注意:要uses Word97。procedure openwordfile(Myword:TWordApplication;Myfile:string);//打开Word文档函数。
//Myword:文档工程名称;Myfile:word文件名。
var
ItemIndex :OleVariant;
FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert,
WritePasswordDocument, WritePasswordTemplate, Format,
MatchCase,MatchWholeWord,find1,rep1,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Replace : OleVariant;
begin

Myword.Visible := false;
FileName :=MyFile;
confirmConversions := False;
ReadOnly := False;
AddToRecentFiles := False;
PasswordDocument := '';
PasswordTemplate := '';
Revert := True;
WritePasswordDocument := '';
WritePasswordTemplate := '';
Format := wdOpenFormatDocument;
myWord.Documents.Open( FileName, ConfirmConversions,
readOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
Revert, WritePasswordDocument, WritePasswordTemplate, Format );
myword.Visible:=false;
end;

//打开Word文档函数(结束)
Procedure RepData(MyDoc:TWordDocument;FindStr,RepStr:string);//利用数据库替换Word字符串函数
//FindStr:被查找的字符串。RepStr:要替换的字符串。
var
MatchCase,MatchWholeWord,find1,rep1,Format,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Replace : OleVariant;
begin

Find1:=FindStr;
Rep1:=RepStr;
MatchCase:=false;
MatchWholeWord:=true;
MatchWildcards:=false;
MatchSoundsLike:=false;
MatchAllWordForms:=false;
Format:=true;
Forward:=true;
replace:=wdReplaceall;
// WordApplication2.StartOfdocument;
//到文首
{if} Mydoc.Range.Find.Execute( find1, MatchCase, MatchWholeWord,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Format, Rep1, Replace );{ then
showmessage('OK!!!!')}
{else
showmessage('finish!!');}
end;

以下是根据模板新建一个Doc文件。
FileName := Opendialog1.FileName;
itemindex:=1;
tempPlate:=Filename;
newtemplate:=false;
WordApplication1.Connect;
WordApplication1.Visible:=true;
WordApplication1.Documents.Add(TempPlate,newtemplate);
WordDocument1.ConnectTo(WordApplication1.Documents.Item(itemindex));
 
我做过向word表格中插入字符的程序:
1、建立一个word模版
2 在程序中打开模版,把字符插到表格中,生成一个新的文件
代码如下:
/给调用Add函数使用的实参赋值
//Template:=EmptyParam;
template := 'C:/行车路单.dot';
NewTemplate:=False;
do
cumentType:=wdNewBlankDocument;
Visible:=true;
//Visible:=False;
//调用Add函数
WordApp.Documents.Add(Template,NewTemplate,DocumentType,Visible);
//连接到新建的文档
itemIndex:=1;
WordDoc.ConnectTo(WordApp.Documents.Item(itemIndex));
vSelection := wordApp.Selection;
//取文档中的第1张表
vTable := wordApp.ActiveDocument.Tables.Item(1);
vTable2 := wordApp.ActiveDocument.Tables.Item(2);
vTable3 := wordApp.ActiveDocument.Tables.Item(3);
vTable4 := wordApp.ActiveDocument.Tables.Item(4);

vTable.cell(2,1).Range.Text:=Copy(myccrq,1,4)+'年'+copy(myccrq,5,2)+'月'+Copy(myCCrq,7,2)+'日-'+Copy(myFhrq,1,4)+'年'+copy(myFhrq,5,2)+'月'+Copy(myFhrq,7,2)+'日';
vTable.cell(2,2).Range.text:='NO.'+myLdBh;
vTable.cell(2,3).Range.Text:=Copy(myccrq,1,4)+'年'+copy(myccrq,5,2)+'月'+Copy(myCCrq,7,2)+'日-'+Copy(myFhrq,1,4)+'年'+copy(myFhrq,5,2)+'月'+Copy(myFhrq,7,2)+'日';
vTable.cell(2,4).Range.Text:=Copy(myccrq,1,4)+'年'+copy(myccrq,5,2)+'月'+Copy(myCCrq,7,2)+'日-'+Copy(myFhrq,1,4)+'年'+copy(myFhrq,5,2)+'月'+Copy(myFhrq,7,2)+'日';

vTable2.Cell(1,2).Range.Text:=myCph;
vTable2.Cell(1,4).Range.Text:=myjsy;

vTable2.cell(3,1).Range.Text:=myycdw;
vTable2.cell(3,2).Range.text:=myCcsj1;
vTable2.cell(3,3).Range.text:=myxcLx1;
vTable2.cell(3,4).Range.text:=myCcRw1;
vTable2.cell(4,2).Range.text:=myCcsj2;
vTable2.cell(4,3).Range.text:=myxcLx2;
vTable2.cell(4,4).Range.text:=myCcRw2;
vTable2.cell(5,2).Range.text:=myCcsj3;
vTable2.cell(5,3).Range.text:=myxcLx3;
vTable2.cell(5,4).Range.text:=myCcRw3;
vTable2.cell(6,3).Range.Text:='值班调度'+myZbdd;
 
顶部