求解word与数据库相关(50分)

  • 主题发起人 主题发起人 脸谱
  • 开始时间 开始时间

脸谱

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, DB, DBTables, Grids, DBGrids,comobj, StdCtrls,word97,
OleServer, Word2000;

type
TForm1 = class(TForm)
ds_gcht: TDataSource;
DBGrid1: TDBGrid;
qry_gcht: TQuery;
Button1: TButton;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var datagcbh,datagcmc:string;
filename:olevariant;

begin
datagcbh:=qry_gcht.fieldbyname('gcbh').AsString ;
datagcmc:=qry_gcht.fieldbyname('gcmc').AsString;
filename:=extractfilepath(paramstr(0))+'ht1.doc';

wordapplication1.Connect;
wordapplication1.Visible:=true ;
wordapplication1.Documents.Open(filename,EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam);
worddocument1.ConnectTo(wordapplication1.ActiveDocument );

end;
◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
我在vb中可以使用类似的方法实现同样的功能
◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
问题:
我在vb中对表格中的指定格操作的语句如下:
//让当前表中的第一行第二列中显示“mytest”内容!
wordapplication.activedocument.tables(1).cell(1,2).rang.text="mytest"
但是我在delphi中确不能实现这条语句——请教如何搞定这个!只要通过即时给分!
 
帮帮忙!
 
不会吧!这就没人答了?
 
斑竹在吗?不是说这恢复率高吗?[:(]
 
{你的问题真的不错!呵呵,不过Delphi还是可以搞定的!
看下面代码,专门为你写的。}
uses
Comobj;

var
Word_Handle, Doc_Handle: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
Word_Handle := GetActiveOleObject('Word.Application');
except
try
Word_Handle := CreateOleObject('Word.Application');
except
end;
end;
Word_Handle.Visible := True;
Doc_Handle := Word_Handle.Documents.Open(FileName := 'C:/1.doc');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
Cell_Handle: OleVariant;
begin
Cell_Handle := Doc_Handle.tables.Item(1).Cell(1, 2);
Cell_Handle.Range.Text := 'mytest';
end;
 

Similar threads

后退
顶部