我想实现这样的功能:姓名:        年龄:
                 职业:        出生日期:
                 个人简介: 
                 有何喜好:
我已经在WORD 中做好模斑,在姓名,年龄,职业,出生日期,个人简介,有何喜好处做好书签.准备把D中填入的数据导入到做好的
模板中然后打印,请问我在D中如何实现?
在线等.我刚接触D 不久.请详细一些.
不胜感谢.

解决方案 »

  1.   

    Delphi操作Excel比较方便。如果你要导到Word中,你可以用RichEdit控件编辑后保存为rtf格式即可用Word打开并打印。
      

  2.   

    UP樓上的。確實操作Word不太方便
    還不如用Excel
      

  3.   

    原来做过一个哈。用OLE的方式,参考代码如下:
    var
      varWord: Variant; // 创建 WORD时所用  try
        // 1. 建立 OleObject,连接 word
        varWord := CreateOleObject('word.basic');
        // 2. 建立 Word97的新文件
        varWord.FileNew();
        // 3. 设置 Word97的基本状态
        varWord.ViewZoom75;         // 设置显示比例为 75%
        varWord.ViewPage;           // 改为页面显示方式
        // 4 发送文号数据
        varword.Font('Arial ');     // 设置字体
        varWord.FontSize(10);       // 设置字号
        for i := 0 to strList.Count - 1 do
        begin
          varword.insert(strList[i] + #13);
        end;
        // 5 最后设置
        VarWord.StartOfdocument;    // 到文首
        VarWord.AppMaxiMize();      // 设置窗口最大化
        VarWord.AppShow();          // 显示应用程序
      except
        ShowMessage('运行 Microsoft Word 失败!');
      end;
      

  4.   

    差不多上面都有了。
    Delphi操作Wrod的几个知识点var
      wApp,work:Variant;  try
       wApp:=GetActiveOleObject('word.Application');
      except
       wApp:=CreateOleObject('word.Application');
      end;//---------------替换字符--------------------  wApp.selection.find.text:='<%a2%>';
      wApp.selection.find.replacement.text:=lb;
      wApp.selection.find.execute(replace:=wdReplaceAll);//----------------------隐藏WORD菜单和工具栏----------------------if OC.State in [osUIActive]  then 
     begin
      OC.OleObjectInterface.QueryInterface(IOleInPlaceObject,IOO);
      IOO.UIDeactivate;
      IOO :=nil;
     end;//-----------------根据书签导数据------ wApp.Selection.GoTo(What:=wdGoToBook,Name:='ZCZD'+IntToStr(i));
      wApp.Selection.typetext('■')//-------------------生成页眉页脚并写入数据----------  wApp.Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Name:='FLAG');
      If wApp.ActiveWindow.View.SplitSpecial <> wdPaneNone Then
          wApp.ActiveWindow.Panes(2).Close;
      If (wApp.ActiveWindow.ActivePane.View.Type = wdNormalView) Or (wApp.ActiveWindow.ActivePane.View.Type = wdOutlineView) Then
          wApp.ActiveWindow.ActivePane.View.Type := wdPrintView;
      wApp.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
      wApp.Selection.ParagraphFormat.Borders.item(wdBorderLeft).LineStyle := wdLineStyleNone;
      wApp.Selection.ParagraphFormat.Borders.item(wdBorderRight).LineStyle := wdLineStyleNone;
      wApp.Selection.ParagraphFormat.Borders.item(wdBorderTop).LineStyle := wdLineStyleNone;
      wApp.Selection.ParagraphFormat.Borders.item(wdBorderBottom).LineStyle := wdLineStyleNone;
      wApp.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageFooter;
      wApp.Selection.ParagraphFormat.Alignment := wdAlignParagraphRight;
      if (DM.XM_DS.FieldByName('tg_flag').AsInteger = 2) and (DM.XM_DS.FieldByName('tj_flag').AsInteger = 0) then
        wApp.Selection.TypeText(Text:='合`格`任`务`书')
      else
        wApp.Selection.TypeText(Text:='不合格任务书');
      wApp.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;