delphi调用word的问题!请各位这方面比较擅长的帮解释一下!
我的系统里面用到这样一段用VBA编程调用word的代码!我是初学的。如果用专业的的话来说,应该怎么样来描述delphi中调用word的这Delphi里封装的三个主要交互控件:TWordApplication,TWordDocument,TwordFont.
本程序的主要实现技术如下:
const
BF_Name:array[1..10] of String=('一、','二、','三、','四、','五、','六、','七、', '八、','九、','十、');
JG:String=' ';
var
ItemIndex:OleVariant;
NewDocument:_Document;
FZ,TL,BF,STH,i,WTS,YTS:integer;
temp,AppPath,BGName:string;
procedure SetFont(aBold,aItalic,aShadow,aSize:integer);
begin
SJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font);
SJ_WF.Name:='宋体';
SJ_WF.Bold := aBold;
SJ_WF.Italic := aItalic;
SJ_WF.Shadow := aShadow;
SJ_WF.Size := aSize;
end;
begin
AppPath:=ExtractFilePath(Application.ExeName); //取得本程序的路径
//显示进度窗口
RateProcess_F.Show;
RateProcess_F.CZ_P.Caption:='正在链接Microsoft Office Word......';
RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25;
RateProcess_F.Repaint; //重绘窗口,否则显示不出新设置的控件属性
try
SJ_WA.Connect;
except
MessageBox(handle,'无法连接,也许没有安装Word','连接出错', MB_Ok or MB_ICONERROR);
RateProcess_F.Close;
Abort;
end;
RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10;
//SJ_WA.Visible := False;
//SJ_WA.Caption := '题库管理系统';
//建立一个新文档
NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);
RateProcess_F.CZ_P.Caption:='正在新建Microsoft Office Word 文档......';
RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;
RateProcess_F.Repaint;
//建立WordDocument连接, 用第二种方法不容易出错
//SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex));
SJ_WD.ConnectTo(NewDocument);
SJ_WD.Windows.Item(ItemIndex).Caption:='数据库原理与应用期末试卷';
//此文档的第一个窗口的标题
RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;
RateProcess_F.Repaint;
//因为Word进行拼写检查需要很多时间,所以首先关闭检查
SJ_WA.Options.CheckSpellingAsYouType := False;
SJ_WA.Options.CheckGrammarAsYouType := False;
//设置Word的字体
SetFont(1,0,0,22);
//设置段落对齐方式
SJ_WD.Range.InsertAfter('数据库原理与应用期末试卷'+#13);
RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;
RateProcess_F.Repaint;
SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft;
SJ_WD.Range.InsertAfter('学校___________ 班级________ 姓名___________ 得分_____ ' +#13);
SetFont(0,0,0,14);
个技术呀!请各位帮指点一下!不胜感激!
问题点数:20、回复次数:1Top
1 楼waiwaizz()回复于 2006-06-01 20:44:12 得分 0
我做的是一个可以出卷的系统,这段代码就是实现,当我生成一份试卷的话,所生成的试卷就直接从word里面打开了。当别人问我是怎么实现这个技术,我应该怎么把这个问题说清楚呀!摆脱各位大哥帮帮看下!或者知道的帮提示一下!Top




