用户登录
用户注册

分享至

delphiword应用实例 在DELPHI中使用word文档

  • 作者: 被动熊大
  • 来源: 51数据库
  • 2020-04-20

这个问题难不住我~

1.首先你可以使用ole 调用word ,

将word内容在delphi界面显示出来。

2.然后利用word本身的‘宏’命令。

选择‘录制新宏’。

3.在宏录制状态下做你想做的操作(将字段插入word中你想要的任何地方)。操作完毕后选择停止录制。

4.打开刚刚录制的‘宏’。选择编辑,把VBA命令转换为delphi代码。

(其实你应该去大富翁看看,那里有很多答案)

我想用delphi操作word,并向word里插入统计图,希望得到一份实例,越完整越好,或者高手指导。

没人会给实例你,虽然我有,用了几天学会的,自己学下,不难。word>录制宏>插入表格>编辑宏>vb源码学习

您好:

插入统计图会从word跳到excel,宏录制不出来。

要调用的方法我已经知道是哪个了,但是统计图类型对应的编码,还有怎么把相应的数据传进去我还不知道怎么做。

您知道从哪里可以查到吗?

用excel录制宏,或者Word文件另存为html后查源码

如何用delphi操作word

一. 定义word应用程序,文档对象,比如:

wordApp: OleVariant;

wordDoc: OleVariant;

二. 打开word文档

wordApp := CreateOleObject('Word.Application');

wordDoc := WordApp.Documents.Open(FileName:=filename,

ReadOnly:= false, Revert:=True, Visible:= True);

WordApp.Visible := false;

三.表格插入数据

WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);

四.在指定行写数据

WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');

五.指定字符位置插入数据

MyRange: OleVariant;

MyRange := wordDoc.Range(Start:=0,End:=10);

MyRange.InsertAfter('abcd'+#13);

六.文件保存

wordDoc.SaveAs(filename);

七.连接word(联系:二打开文档)

//测试当前是否运行了word

try

v := getactiveoleobject(word.application);

except

//未运行则运行之

v := createoleobject(word.basic);

end; r /> try

//连接到word

wordapp.connect;

except

beep;

messagedlg(不能生成文档,请确认是否安装了word 2000!, mterror, [mbok], 0);

abort;

end;

//

我想在 Delphi 程序中直接调用 Word 文档并使用 Word 的功能,这个程序该怎样编? 该用什么控件呢?

方法一:

  1) 从 WORD.EXE 中导入 WORD 的 Type Library

  2) var wd : _Application;

   wdt : Table;

   dot1,FileName: OleVariant;

  begin

   dot1 := 'c:\abc.dot';

   wd := coApplication_.Create;

   wd.Documents.Add(dot1, EmptyParam);

   wdt := wd.ActiveDocument.Tables.Item(1);

   wdt.Cell(1,3).Range.Text := 'Hello!';

   //以下是保存和关闭文档及 Word, 可以不关,下面两个例程略过此步。

   //EmptyParam 用来代替不使用的参数。

   FileName := 'c:\test.doc';

   wd.ActiveDocument.SaveAs(FileName,EmptyParam,EmptyParam,

   EmptyParam,

     EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

     EmptyParam,

     EmptyParam);

   wd.ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);

   wd.Quit(EmptyParam,EmptyParam,EmptyParam);

  end;

  方法二:

  var

   Ole: Variant;

   NewDoc: Variant;

   DocTable: Variant;

  begin

  //方法二的参数可以直接使用 Delphi 的数据类型。其它方法只能使用 OleVariant 类型.

    Ole := CreateOleObject('Word.Application');

    Ole.Application.Visible := true;

    NewDoc := Ole.Documents.Add('C:\abc.dot');

    DocTable := NewDoc.Tables.Item(1);

    DocTable.Cell(1,3).Range.Text := 'Hello!';

  //设置Variant对象为UnAssigned来释放该对象的引用。

    NewDoc := UnAssigned;

    DocTable := UnAssigned;

    Ole := UnAssigned;

  end;

  方法三:使用 Server 页的 TWordApplication 控件,同理,你可以用里头的所有控件。Ole 为TWordApplication控件名称。

  var

   NewDoc: Variant;

   DocTable: Variant;

  o: OleVariant;

  begin

   o := 'c:\abc.dot';

   NewDoc := Ole.Documents.Add(o,EmptyParam);

   DocTable := NewDoc.Tables.Item(1);

   DocTable.Cell(1,3).Range.Text := 'Hello!';

   NewDoc := UnAssigned;

   DocTable := UnAssigned;

  end;

推荐用方法一和方法三。因为方法二不提供类型参数检查,也因为方法二的接口调用效率低。程序中所使用的属性和方法资料可以在 Office 的 VBA 帮助中查到。需要者请在安装 Office 时选择安装 VBA 编程帮助。

delphi操作word的问题

我不太理解你想要做什麽,不过我看了你的问题后也做了一个把memo中的纪录导入到word档的例子,你可以参考一下:

单元接口引用 comobj单元。

procedure TForm1.Button3Click(Sender: TObject);

var Word : Variant;

begin

try

Word := CreateOLEObject('Word.Application');

Word.Documents.Open(extractfilepath(Application.ExeName)+'\test.doc',false);

Word.Visible := false;

Word.ActiveDocument.Range(0, 0);

Word.ActiveDocument.Range.InsertAfter(memo1.Lines.Text);

Word.ActiveDocument.Range.InsertParagraphAfter;

Word.ActiveDocument.Range.Font.Name := 'MS Sans Serif';//砞竚?砰

Word.ActiveDocument.Range.Font.Size := 24;//砞竚?砰??掜

Word.Quit;

finally

Word.Quit;

end;

end;

delphi中如何将内容保存到Word中?我没有使用数据库

写个函数给您,其中myw就是您的WordApplication组件,mydoc就是您的WordDocument组件

procedure CreateNewWordDoc(myw: TWordApplication; mydoc: TWordDocument);overload;

var p: OleVariant;

begin

myw.Disconnect;

p := EmptyParam;

myw.connect();

myw.Documents.Add(p, p, p, p);

mydoc.ConnectTo(myw.ActiveDocument);

myw.Visible:=true;

end;更多

说实话 看不懂 那既然是函数 怎么调用呢?

建个窗体,放一个TwordApplication,命名为WordApp,再放一个TWordDocument,命名为WordDoc,放置一个按钮,在点击事件中写

CreateNewWordDoc(WordApp,WordDoc);

再问一下 我做的内容中有表格,就是用stringgrid做的表格 怎么将里面的内容页复制到word中呢

麻烦了 我是初学者

接着写

wordDoc.range.insertAfter('测试值1'+#13);

wordDoc.range.insertAfter('测试值2'+#13);

wordDoc.range.insertAfter('测试值3'+#13);

仿照这个写就OK了

delphi控制word

用OLE技术,

在uses部分添加ComObj模块,

然后,如下例子:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,ComObj;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

wd,du:OLEVariant;

begin

wd:=CreateOleObject('Word.Application');//建立WinWord对像

du:=wd.Documents.Open('e:\a.doc'); //打开Word文档

ShowMessage(String(wd.ActiveDocument.Name));//显示打开的文档名称

//以下可以插入你自己的程序

du.close;//关闭文档

wd.Quit; //关闭程序

end;

end.

delphi word 数据库

资料库储存影像 建议转成档案.再放入WORD

另外建议预设WORD图档放置位置与大小.这是程式预设的语法格式

就是利用范本开起来使用套表方式完成.

插入图片:

var

FWord2007,FDocuments,FDoc:Variant;

NewTemplate:Variant;

LinkToFile,SaveWithDocument: Variant;

begin

FWord2007 :=CreateOleObject('Word.application');

//Visible自行设定True

FDocuments:=FWord2007.Documents;

//加入范本.Word套表方式

NewTemplate := false;

FDoc:=FDocuments.Add('FileName', NewTemplate);

//插入图片

LinkToFile:=False;

SaveWithDocument:=True;

FDoc.Shapes.AddPicture(FileName,LinkToFile,SaveWithDocument,Left,Top,Width,Height);

//另存档案

FDoc.SaveAs('FileName');

end;

转载请注明出处51数据库 » delphiword应用实例 在DELPHI中使用word文档

软件
前端设计
程序设计
Java相关