首页  编辑  

convert a TStringGrid to HTML?

Tags: /超级猛料/VCL/Grid控件/   Date Created:

convert a TStringGrid to HTML?

Author : Cyrus

The SGridToHtml() function converts a Stringgrid to a HTML Code.

 Parameters: SG: TStringGrid to convert

             Dest: TMemo to show the HTML Code

             BorderSize: Size of border (0 = show no border)

{

 Mit der Funktion SGridToHtml() k StringGrids in HTML Code umgewandelt werden.

 SG bezieht sich auf das TStringGrid, welches codiert werden soll.

 in Dest (vom Typ TMemo) wird der HTML Code erzeugt.

 BorderSize bestimmt, wie dick der Tabellenrahmen sein soll. 0 = kein Rahmen

}

procedure SGridToHtml(SG: TStringgrid; Dest: TMemo; BorderSize: Integer);

var  

 i, p: integer;

 SStyle1, SStyle2, Text: string;

begin

 Dest.Clear;

 Dest.Lines.Add('<html>');

 Dest.Lines.Add('<body>');

 Dest.Lines.Add('  <table border="' + IntToStr(BorderSize) + '" width="' +

   IntToStr(SG.Width) + '" height="' + IntToStr(SG.Width) + '">');

 for i := 0 to SG.RowCount - 1 do

 begin

   Dest.Lines.Add('  <tr>');

   for p := 0 to SG.ColCount - 1 do

   begin

     SStyle1 := '';

     SStyle2 := '';

     if fsbold in SG.Font.Style then

     begin

       SStyle1 := SStyle1 + '<b>';

       SStyle2 := SStyle2 + '</b>';

     end;

     if fsitalic in SG.Font.Style then

     begin

       SStyle1 := SStyle1 + '<i>';

       SStyle2 := SStyle2 + '</i>';

     end;

     if fsunderline in SG.Font.Style then

     begin

       SStyle1 := SStyle1 + '<u>';

       SStyle2 := SStyle2 + '</u>';

     end;

     Text := sg.Cells[p, i];

     if Text = '' then Text := ' ';

     Dest.Lines.Add('    <td width="' + IntToStr(sg.ColWidths[p]) +

       '" height="' + IntToStr(sg.RowHeights[p]) +

       '"><font color="#' + IntToHex(sg.Font.Color, 6) +

       '" face="' + SG.Font.Name + '">' + SStyle1 +

       Text + SStyle2 + '</font></td>');

   end;

   Dest.Lines.Add('  </tr>');

 end;

 Dest.Lines.Add('  </table>');

 Dest.Lines.Add('</body>');;

 Dest.Lines.Add('</html>');

end;

// Example, Beispiel

procedure TFormCSVInport.Button6Click(Sender: TObject);

begin

 SGridToHtml(StringGrid1, Memo1, 1);

 Memo1.Lines.SaveToFile('c:\test.html');

end;