Как экспортировать DataTable в HTML в С#?

Как экспортировать DataTable в HTML в С#?

Как экспортировать 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 [email protected]"
            <!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-файл в С#.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий