怎样在自己的程序中编辑WORD文档(50分)

  • 主题发起人 主题发起人 运通
  • 开始时间 开始时间

运通

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个简单的编辑器,可以编写WORD文档,基本上和WORD的操作很相似的就可以。
而且机器上已经安装了WORD。
是否OFFICE有什么OCX或者DLL可以搞定这个功能?
 
delphi有控件可以解决这些问题,在servers里面。用wordapplication,worddocument就可以了
 
我看了,怎么没有显示的呀?好象是不可视构件。是不是我什么地方没做对?
 
告诉我,具体怎么做?
我试了,下不了手。做不了。
我觉得首先控件应该是一个可视的呀。
 
delphi有demo
 
是吗?我回去后好好看看。
 
// WordDocumentExport: TWordDocument;
// OleWord:TOleContainer
try
OleWord.CreateObject('Word.Document', False);
except
shmess('没有安装Word','错误',mb_ok+MB_ICONERROR);
exit;
end;
// OleWord.装入文件或从数据库装入 loadfromstream
OleWord.DoVerb(ovPrimary);

WordDocumentExport.ConnectTo(IUnknown(OleWord.OleObject) as _Document);

// WordDocumentExport或WordDocumentExport.application对word进行操作看VBA


WordDocumentExport.Disconnect;
 
应该使用OLE嵌入到自己的程序当中,肯定是可以的啦
哈哈
 
加一个WordApplication,一个WordDocument,一个opendialog
联接Word
try
Wordapplication1.Connect;
except
MessageDlg(’Word 可能没有安装!’, mtError, [mbOk], 0);
Abort;
end;
Wordapplication1.Visible := True;

打开文档

procedure TForm1.button1.Click(Sender: TObject);
var
ItemIndex :OleVariant;
FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert,
WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;
begin
if not Opendiaolg1.Execute then
Exit;
FileName:=Opendiaolg1.FileName;//打开word文件
MyFileName:=FileName;
ConfirmConversions:= False;
ReadOnly:=False;
AddToRecentFiles:=False;
PasswordDocument:=’’;
PasswordTemplate:=’’;
Revert:=True;
WritePasswordDocument:=’’;
WritePasswordTemplate:=’’ ;
Format:=wdOpenFormatDocument;
WordApplication1.Documents.Open( FileName, ConfirmConversions,
ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
Revert, WritePasswordDocument, WritePasswordTemplate, Format );

{Assign WordDocument component}
ItemIndex:= 1;
WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));

{Turn Spell checking of because it takes a long time if enabled and slows down Winword}
WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;

end;

[blue][/blue][^]
 
同意楼上的
 
不必加哪些控件,直接用OLE的方式打开即可。例子如下(要uses ComObj):
var B_Doc:Variant;
begin
B_Doc:=CreateOleObject('Word.Application');
try
B_Doc.Documents.Open(FileName:=G_DocName,Revert:=false); //G_DocName是Word文档的文件全名
B_Doc.visible:=true;
except
Application.MessageBox('本机可能未装Word,无法打开文件!','提示',mb_ok+mb_iconError);
B_Doc.quit;
end;
end;
 
用OLE是最好的方法:)
 
看了DELPHI6的例子,应该没问题。暂时可能还不做,等以后要做的时候再向大家请教。先结束这个帖子。
 
后退
顶部