怎样从ADO Query中的数据导出到HTML?

首先新建一个FORM在上面放一个Tedit (name:edit1)、 TWebBrowser (name: WebBrowser1)、 TMemo (name: Memo1)、 TButton (name: Button1)代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var ConStr: widestring;
begin
ConStr :
= 'Provider=Microsoft.Jet.OLEDB.4.0;'+
          
'Data Source=C:!gajbaAboutaboutdelphi.mdb;'+
          
'Persist Security Info=False';

DBGrid1.DataSource :
= DataSource1;
DataSource1.DataSet :
= ADOQuery1;
ADOQuery1.Connection :
= ADOConnection1;
ADOConnection1.ConnectionString :
= ConStr;
ADOConnection1.LoginPrompt:
=False;

Edit1.Text:
='SELECT * FROM [tablename]';
Memo1.Text:
='';
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  shtml     : widestring;
  htmlfile  : TextFile;
  i         : integer;
  AvailableFields: 
set of  TFieldType;
begin
AvailableFields:
=[ftWideString, ftDate,  ftFloat];
//open query
ADOQuery1.SQL.Text:=Edit1.Text;
ADOQuery1.Open;

// --> create a html page

//html header
  shtml:= '<html> <head> <title>';
  shtml:
= shtml + Edit1.Text;
  shtml:
= shtml + '</title></head>' + #13#10;
  shtml:
= shtml + '<body>' + #13#10;
  shtml:
= shtml + 'Table created from query: '
          
+ Edit1.Text + '' + #13#10;

//table header
  shtml:= shtml + '<table border="1" width="100%">' + #13#10;
  shtml:
= shtml + '<tr>' + #13#10;
  
for i:=0 to AdoQuery1.FieldCount-1 do
  begin
    
if ADOQuery1.Fields[i].DataType in AvailableFields  then
    begin
      shtml:
= shtml + '<td>';
      shtml:
= shtml + 
              
'' + 
              ADOQuery1.Fields[i].DisplayName 
+
              
'';
      shtml:
= shtml + '</td>' + #13#10;
    end;
  end;
{for}
  shtml:
= shtml + '</tr>' + #13#10;

//table body
  while not adoquery1.Eof do
  begin
    shtml:
= shtml + '<tr>' + #13#10;
    
for i:=0 to AdoQuery1.FieldCount-1 do
    begin
      
if ADOQuery1.Fields[i].DataType in AvailableFields then
      begin
        shtml:
= shtml + '<td>';
        shtml:
= shtml + ADOQuery1.Fields[i].AsString;
        shtml:
= shtml + '</td>' + #13#10;
      end;
    end;
{for}
    shtml:
= shtml + '</tr>' + #13#10;
    ADOQuery1.Next;
  end;
{while}
  shtml:
= shtml + '</table>' + #13#10;

  shtml:
= shtml + '</body></html>';
// --> assign to memo
  Memo1.Text := shtml;

// --> save in a htm file
 AssignFile(htmlfile, 
            ChangeFileExt(
            Application.ExeName,
'.htm'));
 Rewrite(htmlfile);
 WriteLn(htmlfile, shtml);
 CloseFile(htmlfile);


// --> browse to the file
 WebBrowser1.Navigate(ChangeFileExt(
     Application.ExeName,
'.htm'));
 
end;
{Button1.OnClick}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值