Mega Code Archive

 
Categories / Delphi / Strings
 

Convert a tstringgrid to html

{ 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 } 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;