1. delphi控制word
用OLE技术,
在uses部分添加模块,
然后,如下例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ComObj;
type
TForm1 = class(TForm)
Button1: TButton;
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procere TForm1.Button1Click(Sender: TObject);
var
wd,:OLEVariant;
begin
wd:=CreateOleObject('Word.Application');//建立WinWord对像
:=wd.Documents.Open('e:\a.doc'); //打开Word文档
ShowMessage(String(wd.ActiveDocument.Name));//显示打开的文档名称
//以下可以插入你自己的程序
.close;//关闭文档
wd.Quit; //关闭程序
end;
end.
2. delphi读取WORD文档每一页的内容
uses ComObj,WordXp;
var wordapp, WordDoc, PageRange: Variant;
sContext: string;
i, nPageCounts, nStart, nEnd : Integer;
begin
wordapp := CreateOleObject('Word.Application');
try
wordapp.Visible := True;
if dlgOpen1.Execute = False then Exit;
WordDoc := wordapp.Documents.Open(dlgOPen1.FileName);
//文档总页数
nPageCounts := wordapp.Selection.Information[wdNumberOfPagesInDocument];
//如果只有一页 那么全选就OK了
if nPageCounts = 1 then
begin
wordapp.Selection.WholeStory;
mmo1.Lines.Add('=============第'+IntToStr(nPageCounts)+'页内容:===================');
mmo1.Lines.Add(wordapp.Selection.Text);
Exit;
end;
nStart := -1;
nEnd := -1;
//循环获取文档页中的内容
for i := 1 to nPageCounts do
begin
//定位到第i页
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i));
//如果第i页是最后一页 那么直接将光标移动到最后 并输出内容
if i = nPageCounts then
begin
wordapp.Selection.EndKey(wdStory,wdExtend);
sContext := WordApp.Selection.Range.Text;
mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:===================');
mmo1.Lines.Add(sContext);
Exit;
end;
//取第i页的页首位置作为开始位置
nStart := wordapp.Selection.Start;
//定位到i+1页
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i+1));
//取第i+1页的页首位置作为结束位置
nEnd := wordapp.Selection.Start;
//根据开始位置和结束位置确定文档选中的内容(第i页的内容)
WordDoc.Range(nStart,nEnd).Select;
sContext := WordDoc.Range.Text;
//输出内容
mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:===================');
mmo1.Lines.Add(sContext);
nStart := -1;
nEnd := -1;
end;
finally
wordapp.Quit;
end;
end;
昨天没有测试好 这个应该没有问题了吧 试一下吧
3. delphi怎么设置WORD的页边距怎么设置 WORD某一行的字体大小
分太诱人了,写一个吧......
uses comobj;
var word,document:olevariant;
begin
word:=createoleobject('word.application');
document:=word.documents;
document.open('c:\1.doc');
word.ActiveDocument.pagesetup.topmargin:=111; //上边距topmargin 下bottommargin 左leftmargin 右 right.....
word.selection.HomeKey(wdline,1); //开始选择范围
word.Selection.MoveDown(wdline,3);
word.selection.endkey(wdline,wdExtend );
word.Selection.Font.Size:=1111; //结束范围设置,第四行文字改变。
word.ActiveDocument.saveas('c:\2.doc');
document.close;
word.quit;
word:=unassigned;
end; 补充一下,需要用到控件server中的 wordapplication,通过d7测试!