Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: VCL / WinForms / Controls (https://www.delphipraxis.net/24-library-vcl-winforms-controls/)
-   -   Delphi ein StringGrid in HTML umwandeln? (https://www.delphipraxis.net/15045-ein-stringgrid-html-umwandeln.html)

CTV 21. Jan 2004 08:27


ein StringGrid in HTML umwandeln?
 
{ 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önnen 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
}
Delphi-Quellcode:
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;
Greetz Cyrus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz