Как экспортировать DataTable в HTML в С#?
Доброго времени суток! В данной статье мы рассмотрим с Вами как можно преобразовать объект DataTable в HTML на платформе .Net.
DataTable в C# - представляет таблицу данных в памяти. Часто является результатом выполнения запроса к базе данных, т.е. хранит в себе строки результата SQL-запроса.
При решении прикладных задач часто приходиться сохранять (экспортировать) данные из DataTable в некоторый более удобный формат, пригодный для последующего чтения и передачи. Одним из таких форматов является HTML. В примере ниже мы рассмотрим один из вариантов реализации экспорта DataTable в HTML.
internal class DataTableUtils
{
public static string Convert2Html(DataTable dataTable)
{
var code = "<table border=\"1\" align=\"center\">";
// Добавляем заголовок таблицы
code += "<tr>";
for (int i = 0; i < dataTable.Columns.Count; i++)
code += "<th>" + dataTable.Columns[i].ColumnName + "</th>";
code += "</tr>";
// Добавляем строки
for (int i = 0; i < dataTable.Rows.Count; i++)
{
code += "<tr>";
for (int j = 0; j < dataTable.Columns.Count; j++)
code += "<td>" + dataTable.Rows[i][j].ToString() + "</td>";
code += "</tr>";
}
code += "</table>";
return code;
}
// конвертируем в полноценный HTML документ с заголовком
public static string Convert2HtmlEx(DataTable dataTable, string title)
{
return $@"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<meta http-equiv=""X-UA-Compatible"" content=""IE=edge"">
<meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">
<title>{title}</title>
</head>
<body>
{Convert2Html(dataTable)}
</body>
</html>
";
}
}
Использовать можно следующим образом:
class Program
{
static void Main(string[] args)
{
Export2HtmlButton_Click(null, null);
}
private void Export2HtmlButton_Click(object sender, EventArgs e)
{
var dataTable = QueryResultDataGridView_.DataSource as DataTable;
if(dataTable?.Rows.Count == 0)
{
MessageBox.Show(Text, "Нет данных");
return;
}
var content = DataTableUtils.Convert2HtmlEx(dataTable, "Отчет");
File.WriteAllText(@$"С:\Downloads\Отчет.html", content);
}
}
Вот таким образом можно сохранить результат, например, выборки из базы данных в HTML-файл в С#.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.