把数据表输出到word里,word 是通过server页里的word 控件新建的,并且能控制字体的
大小和颜色

解决方案 »

  1.   

    将stringgrid的内容弄到word里面去:
    unit UnitMain;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons, Word2000,
      OleServer;type
      TForm_Main = class(TForm)
        ADOCon_Sample: TADOConnection;
        ADOD_Sample: TADODataSet;
        DataS_Sample: TDataSource;
        DBG_Sample: TDBGrid;
        BitBtn1: TBitBtn;
        Label1: TLabel;
        WordApp: TWordApplication;
        WordDoc: TWordDocument;
        procedure FormCreate(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form_Main: TForm_Main;implementation{$R *.dfm}procedure TForm_Main.FormCreate(Sender: TObject);
    begin
      //指向数据库
      ADOCon_Sample.Connected := False;
      ADOCon_Sample.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFileDir(Application.Exename) + '\' + 'Sample.mdb;Persist Security Info=False';
      ADOCon_Sample.Connected := True;
      ADOD_Sample.Active := True;
    end;procedure TForm_Main.BitBtn1Click(Sender: TObject);
    var
      FindText, ReplaceWith : array[0..14] of OleVariant;
      StartPos, FileName : OleVariant;
      ReplaceCount : integer;
    begin
      if DBG_Sample.Fields[0] = nil then exit;
      //连接
      WordApp.Disconnect;
      WordApp.Connect;
      WordApp.Visible := True;
      Filename := ExtractFileDir(Application.Exename) + '\' + 'Sample.doc';
      WordApp.Documents.Open(Filename,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
      WordDoc.Disconnect;
      WordDoc.ConnectTo(WordApp.ActiveDocument);
      WordDoc.Activate;  //编号
      FindText[0] := 'bianhao';
      ReplaceWith[0] := DBG_Sample.Fields[0].AsString;
      //采样日期
      FindText[1] := 'caiyangriqi';
      ReplaceWith[1] := DBG_Sample.Fields[1].AsString;
      //送样日期
      FindText[2] := 'songyangriqi';
      ReplaceWith[2] := DBG_Sample.Fields[2].AsString;
      //样品来源
      FindText[3] := 'yangpinlaiyuan';
      ReplaceWith[3] := DBG_Sample.Fields[3].AsString;
      //样品名称
      FindText[4] := 'yangpinmingcheng';
      ReplaceWith[4] := DBG_Sample.Fields[4].AsString;  //商标
      FindText[5] := 'shangbiao';
      ReplaceWith[5] := DBG_Sample.Fields[5].AsString;
      //样品数量
      FindText[6] := 'yangpinshuliang';
      ReplaceWith[6] := DBG_Sample.Fields[6].AsString;
      //样品批号
      FindText[7] := 'yangpinpihao';
      ReplaceWith[7] := DBG_Sample.Fields[7].AsString;
      //包装
      FindText[8] := 'baozhuang';
      ReplaceWith[8] := DBG_Sample.Fields[8].AsString;
      //样品阶段
      FindText[9] := 'yangpinjieduan';
      ReplaceWith[9] := DBG_Sample.Fields[9].AsString;  //采样人
      FindText[10] := 'caiyangren';
      ReplaceWith[10] := DBG_Sample.Fields[10].AsString;
      //记录人
      FindText[11] := 'jiluren';
      ReplaceWith[11] := DBG_Sample.Fields[11].AsString;
      //状态
      FindText[12] := 'zhuangtai';
      ReplaceWith[12] := DBG_Sample.Fields[12].AsString;
      //检验项目
      FindText[13] := 'jianyanxiangmu';
      ReplaceWith[13] := DBG_Sample.Fields[13].AsString;
      //合同编号
      FindText[14] := 'hetongbianhao';
      ReplaceWith[14] := DBG_Sample.Fields[14].AsString;
      //替换开始处
      StartPos := 0;
      for ReplaceCount := 0 to 14 do
      begin
        WordDoc.range(StartPos).find.execute(FindText[ReplaceCount], EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, ReplaceWith[ReplaceCount], EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
      end;
      //WordDoc.PrintOut;
    end;end.