Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

TStringGrid > HTML

01.01.2007
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;

Взято с сайта https://www.swissdelphicenter.ch/en/tipsindex.php


procedure ToHtml(SG: TStringGrid; S: string);
Var i,j:integer;
    t
:TStringList;
begin
 
try
  t
:=TStringList.Create;
  t
.Add('<table border="1" align="center" cellspacing="0" rules="all">');  //начало таблицы
 
  t
.Add('<tr>');  //начало заголовков
 
For j:=0 To SG.ColCount-1 Do
   t
.Add('<th>'+SG.Cells[j,0]+'</th>');  //заголовки
  t
.Add('</tr>');  //конец заголовков
 
 
{ProgressBar1.Max:=SG.RowCount}
 
 
For i:=1 To SG.RowCount Do
   
begin
    t
.Add('<tr>'); //начало ячеек
   
For j:=0 To SG.ColCount-1 Do
     t
.Add('<td>'+SG.Cells[j,i]+'</td>');  //ячейки
    t
.Add('</tr>'); //конец ячеек
   
{ProgressBar1.Position:=i}
   
end;
 
   t
.Add('</table>');  //конец таблицы
   t
.SaveToFile(S); //сохраняем в файл
 
 
{ProgressBar1.Position:=0}
 
finally
  t
.Free;
 
end;
end;

 

Пример вызова:

ToHtml(StringGrid1, 'C:\123.html');

 

Автор: Kostas

Взято из https://forum.sources.ru