Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Перевести TStringGrid в HTML(2)

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

Code:

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;

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

Code:

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

Автор: Kostas

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

Великолепная задача!

Предоставленное кодирование предназначено для преобразования компонента TStringGrid в файл HTML. Процедура ToHtml принимает два параметра: SG (экземпляр TStringGrid) и S (путь к выходному файлу HTML).

Вот разбивка того, что код делает:

  1. Создается объект TStringList (t) для строительства содержимого HTML.
  2. Добавляется открывающий тег <table> с атрибутами (граница, выравнивание и т.д.).
  3. Проводится цикл по столбцам таблицы и добавляется строка заголовка (<th>) с значениями ячеек в виде текста.
  4. Затем проводится цикл по каждой строке в таблице, добавляя новый элемент <tr> для каждой строки.
  5. Внутри цикла по строкам добавляется цикл по каждому столбцу и добавляется элемент <td> с значением ячейки в виде текста.
  6. Наконец, закрывается таблица (</table>) и сохраняется содержимое HTML в указанном файле с помощью t.SaveToFile.

Код также включает обновления прогресс-бара (ProgressBar1) для визуального обратного связи.

Чтобы использовать эту процедуру, просто вызовите ToHtml с вашим экземпляром TStringGrid и желаемым путём к файлу HTML, например:

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

Теперь давайте поговорим о улучшениях:

  • Вместо использования TStringList для строительства содержимого HTML можно использовать TStringBuilder или даже буфер текста (например, AnsiString) для более эффективной конкатенации.
  • Код предполагает, что все значения ячеек - это простой текст. Если ваша таблица содержит богатый текст (например, с HTML-тегами), вам нужно будет обрабатывать этот случай отдельно.
  • Обновления прогресс-бара могут не быть необходимы, если таблица мала; рассмотрите возможность удаления их или использования более сложного подхода для больших таблиц.

В целом, это код предоставляет хороший старт для преобразования TStringGrid в HTML. С некоторыми изменениями и улучшениями он может стать еще более эффективным и надежным!

Процедура ToHtml переводит TStringGrid в HTML-код, создавая таблицу с заголовками и ячейками, которые соответствуют данным строки грида.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TStringGrid и TDrawGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:46:16/0.0033690929412842/0