这是操作Word 的例了,你改下就好了 unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Db, DBTables, Grids, DBGrids, ComCtrls,comobj,OleServer, Word97, Word2000;type TForm1 = class(TForm) Database1: TDatabase; ComboBox1: TComboBox; ComboBox2: TComboBox; DateTimePicker1: TDateTimePicker; DBGrid1: TDBGrid; DataSource1: TDataSource; Query1: TQuery; BitBtn1: TBitBtn; WordApp: TWordApplication; WordDocument1: TWordDocument; Button1: TButton; Button2: TButton; procedure BitBtn1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.BitBtn1Click(Sender: TObject); var WordApp,WordDoc,WordTable:OleVariant; i,j:integer; begin WordApp:=CreateOleObject('Word.Application'); WordApp.Visible:=True; form1.WordApp.Connect; WordDoc:=WordApp.Documents.open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument'); WordTable:=WordDoc.Tables.Add(WordApp.Selection.Range,1,1); //WordTable:=WordDoc.Tables.Add(WordApp.Selection.Range,DBGrid1.DataSource.DataSet.RecordCount+1,DBGrid1.Columns.Count); { for i:=1 to 2 do //for i:=1 to DBGrid1.Columns.Count do WordTable.Cell(1,i).Range.InsertAfter(DBGrid1.Columns[i-1].Title.caption); i:=2; with DBGrid1.DataSource.DataSet do while not eof do begin for j:=1 to DBGrid1.Columns.Count do WordTable.Cell(i,j+1).Range.InsertAfter(DBGrid1.Columns[j-1].Field.Value); Next; Inc(i); end; } wordapp.doucuments.items.text:='aaabbb'{你想要加入的字符串} //WordTable.Cell(1,1).Range.InsertAfter('sfsfsfsfs'); end;procedure TForm1.Button1Click(Sender: TObject); var WordApp,WordDoc,WordTable:OleVariant; i,j:integer; begin WordApp:=CreateOleObject('Word.Application'); WordApp.Visible:=True; form1.WordApp.Connect; WordDoc:=WordApp.Documents.open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument'); // wordapp.doucuments.items.text:='aaabbb'{你想要加入的字符串} //worddoc.documents.item(1).Range.InsertAfter('test');// end;procedure TForm1.Button2Click(Sender: TObject); var MSWord:Variant; str:string; begin str:=trim('sdsds'); MSWord:= CreateOLEObject('Word.Application'); MSWord.Documents.Open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument');//'+trim(dlxtform.Edit3.Text)+'\sfa\'+trim(DataModule1.ADOQuery14.fieldbyname('hybh').AsString)+'.doc', True);//´ò¿ªÍⲿWordÎĵµ MSWord.Visible:=1; str:='sfsdfsfsdfsdfsdfs'; MSWord.ActiveDocument.Range(0, 0); MSWord.ActiveDocument.Range.InsertAfter(str); MSWord.ActiveDocument.Range.InsertAfter(str); MSWord.ActiveDocument.Range.InsertParagraphAfter;end;procedure TForm1.FormCreate(Sender: TObject); beginend;end.
var WordApp: TWordApplication; WordDoc: TWordDocument; var DocInx,FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; begin DocInx:=1; oFileName := InFile; oReadOnly:=true; WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; WordDoc:= TWordDocument.Create(nil); WordApp.Documents.open(FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do for iCol:=1 to WordDoc.Tables.Item(i).Columns.Count do s:=WordDoc.Tables.Item(i).Cell(iRow,iCol);//取[iRow,iCol]列值 end; if Assigned(WordDoc) then begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Db, DBTables, Grids, DBGrids, ComCtrls,comobj,OleServer, Word97,
Word2000;type
TForm1 = class(TForm)
Database1: TDatabase;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
DateTimePicker1: TDateTimePicker;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Query1: TQuery;
BitBtn1: TBitBtn;
WordApp: TWordApplication;
WordDocument1: TWordDocument;
Button1: TButton;
Button2: TButton;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.BitBtn1Click(Sender: TObject);
var
WordApp,WordDoc,WordTable:OleVariant;
i,j:integer;
begin
WordApp:=CreateOleObject('Word.Application');
WordApp.Visible:=True;
form1.WordApp.Connect;
WordDoc:=WordApp.Documents.open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument');
WordTable:=WordDoc.Tables.Add(WordApp.Selection.Range,1,1);
//WordTable:=WordDoc.Tables.Add(WordApp.Selection.Range,DBGrid1.DataSource.DataSet.RecordCount+1,DBGrid1.Columns.Count);
{ for i:=1 to 2 do
//for i:=1 to DBGrid1.Columns.Count do
WordTable.Cell(1,i).Range.InsertAfter(DBGrid1.Columns[i-1].Title.caption);
i:=2;
with DBGrid1.DataSource.DataSet do
while not eof do
begin
for j:=1 to DBGrid1.Columns.Count do
WordTable.Cell(i,j+1).Range.InsertAfter(DBGrid1.Columns[j-1].Field.Value);
Next;
Inc(i);
end; }
wordapp.doucuments.items.text:='aaabbb'{你想要加入的字符串} //WordTable.Cell(1,1).Range.InsertAfter('sfsfsfsfs');
end;procedure TForm1.Button1Click(Sender: TObject);
var
WordApp,WordDoc,WordTable:OleVariant;
i,j:integer;
begin
WordApp:=CreateOleObject('Word.Application');
WordApp.Visible:=True;
form1.WordApp.Connect;
WordDoc:=WordApp.Documents.open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument');
// wordapp.doucuments.items.text:='aaabbb'{你想要加入的字符串}
//worddoc.documents.item(1).Range.InsertAfter('test');//
end;procedure TForm1.Button2Click(Sender: TObject);
var
MSWord:Variant;
str:string;
begin
str:=trim('sdsds');
MSWord:= CreateOLEObject('Word.Application');
MSWord.Documents.Open('d:\1.doc',false,false,false,'','',true,'','','wdOpenFormatDocument');//'+trim(dlxtform.Edit3.Text)+'\sfa\'+trim(DataModule1.ADOQuery14.fieldbyname('hybh').AsString)+'.doc', True);//´ò¿ªÍⲿWordÎĵµ
MSWord.Visible:=1;
str:='sfsdfsfsdfsdfsdfs';
MSWord.ActiveDocument.Range(0, 0);
MSWord.ActiveDocument.Range.InsertAfter(str);
MSWord.ActiveDocument.Range.InsertAfter(str);
MSWord.ActiveDocument.Range.InsertParagraphAfter;end;procedure TForm1.FormCreate(Sender: TObject);
beginend;end.
var WordApp: TWordApplication; WordDoc: TWordDocument;
var DocInx,FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;
begin
DocInx:=1;
oFileName := InFile;
oReadOnly:=true; WordApp:= TWordApplication.Create(nil);
WordApp.Visible := false;
WordDoc:= TWordDocument.Create(nil);
WordApp.Documents.open(FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat);
WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do
for iCol:=1 to WordDoc.Tables.Item(i).Columns.Count do
s:=WordDoc.Tables.Item(i).Cell(iRow,iCol);//取[iRow,iCol]列值
end; if Assigned(WordDoc) then
begin
WordDoc.Close;
WordDoc.Disconnect;
WordDoc.Destroy;
WordDoc := nil;
end; if Assigned(WordApp) then
begin
WordApp.Quit;
WordApp.Disconnect;
WordApp.Destroy;
WordApp := nil;
end;
end;
已写好的模板:
甲方代表:张三 合同编号:“此处插入数据库中的合同编号”
乙方代表:“此处插入数据库中的客户名称”
要求数据能够插入到文档中的指定位置。