这个问题难不住我~
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文档