StringGrid - converter para html

Top  Previous  Next

// StrGridToHTML('c:\temp\test.htm',StringGrid1,'Account Code',clBlue,clWhite);

// FileName     : String containing Path and Filename of output file.

// StrGrid      : TStringGrid component to dup to file.

// Heading      : HTML Table Header Text. (optional default = nullstr)

// TextColor    : TColor denoting color of HTML table text (default = clblack)

// TableBgColor : TColor denoting background color of HTML table (default = clAqua)

procedure StrGridToHTML(const FileName: string; StrGrid: TStringGrid; const Heading: string = '';

                        TextColor: TColor = clBlack; TableBgColor: TColor = clAqua);

var

  Txt             : TextFile;

  i,ii            : integer;

  BgColor, TxColor: string;

begin

  // Convert TColor to HTML Hex Color

  BgColor := IntToHex(GetRValue(TableBgColor),2) +

             IntToHex(GetGValue(TableBgColor),2) +

             IntToHex(GetBValue(TableBgColor),2);

 

  TxColor := IntToHex(GetRValue(TextColor),2) +

             IntToHex(GetGValue(TextColor),2) +

             IntToHex(GetBValue(TextColor),2);

 

  // Create output file

  AssignFile(Txt,FileName);

  Rewrite(Txt);

 

  // HTML Header Info

  WriteLn(Txt,'<' + 'HTML>');

  WriteLn(Txt,'<' + 'HEAD>');

  WriteLn(Txt,'<' + 'TITLE>' + ExtractFileName(FileName) + '<' + '/TITLE>');

  WriteLn(Txt,'<' + '/HEAD>');

  WriteLn(Txt);

  WriteLn(Txt,'<' + 'BODY TEXT=#' + TxColor + ' BGCOLOR=#CCCCCC>');

  WriteLn(Txt,'<' + 'H1>' + Heading + '<' + '/H1>');

  WriteLn(Txt,'<' + 'TABLE WIDTH=100% CELLPADDING=2 CELLSPACING=2 ' +

              'BGCOLOR=#' + BgColor + ' BORDER=1>');

 

  // Column Descriptions

  WriteLn(Txt,'    <' + 'TR>');

  for i := 0 to StrGrid.ColCount - 1 do

     WriteLn(Txt,'        <' + 'TH>' + StrGrid.Cells[i,0] + '<' + '/TH>');

  WriteLn(Txt,'    <' + '/TR>');

 

  // Write out the Grid Data

  for i := 1 to StrGrid.RowCount - 1 do begin

    WriteLn(Txt,'    <' + 'TR>');

    for ii := 0 to StrGrid.ColCount - 1 do

        WriteLn(Txt,'    <' + 'TD>' + StrGrid.Cells[ii,i] + '<' + '/TD>');

    WriteLn(Txt,'    <' + '/TR>');

  end;

 

  // Footer

  WriteLn(Txt,'<' + '/TABLE>');

  WriteLn(Txt,'<' + 'P>');

  WriteLn(Txt,'<' + 'H3>' + IntToStr(StrGrid.ColCount) + ' Rows<' + '/H3>');

  WriteLn(Txt,'<' + '/BODY>');

  WriteLn(Txt,'<' + '/HTML>');

 

  CloseFile(Txt);

end;