WPF создание HTML документа из приложения

Что такое WPF?

Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.

Как создать HTML документа в WPF приложении?

Для того чтобы создать HTML файл в приложении WPF, нужно для начала создать функцию и вызвать её после инициализации компонентов:

// Создание HTML
void CreateHTML()
{



}

Далее подключить две библиотеки:

using System.IO; using System.Diagnostics;

Первая библиотека отвечает за создание и чтение файлов, а вторая за создание процессов, т.е. открытие программ из приложения. Теперь необходимо создать переменную содержащую в себе название файла и сам файл с данным именем:

string path = "index.html"; // название файла StreamWriter sw = new StreamWriter(path); // создаём файл

Теперь нужно создать небольшой макет, в котором будут отображаться данные:

<html>
   <head>
      <title>HTML File</title>
      <style>             
			body {                 
				background - color: #81ff81;             
			}             
			.page {             
				width: 80%;             
				margin: 10px auto;             
				background-color: #fff;             
				padding: 50px;             
			}             
			td {             
				border: 1px solid black;             
				padding: 10px 20px;             
				width: 200px;             
			}         
		</style>
   </head>
   <body>
      <div class = page>
         <h2>Заголовок</h2>
         <table cellspacing = 0 cellpadding = 0>
            <tr>
               <td><b>Фото</b></td>
               <td><b>Логин</b></td>
               <td><b>Пароль</b></td>
            </tr>
            <tr>
               <td><b>Данные</b></td>
               <td><b>Данные</b></td>
               <td><b>Данные</b></td>
            </tr>
         </table>
      </div>
   </body>
</html>
WPF - HTML страница

Теперь следует разделить данные на три части:

  • данные до второй строки (
  • вторая строка;
  • данные после третий строки (

В программе нужно прописать следующий код:

// создаём первую часть sw.WriteLine("
<html>
   <head>
      <title>HTML File</title>
      <style>body {background-color: #81ff81;} .page {width: 80%; margin: 10px auto;  background-color: #fff; padding: 50px; } td { border: 1px solid black; padding: 10px 20px; width: 200px; } </style>
   </head>
   <body>
      <div class = page>
      <h2>Заголовок</h2>
      <table cellspacing = 0 cellpadding = 0>
      <tr>
         <td><b>Фото</b></td>
         <td><b>Логин</b></td>
         <td><b>Пароль</b></td>
      </tr>
      ");

Далее стоит получить данные из базы данных и записать новые строки в файл:

DataTable dt_user = Select("SELECT * FROM [dbo].[users]"); // получаем данные из файла 
for (int i = 0; i < dt_user.Rows.Count; i++) // перебираем данные 
{     // записываем в файл     
	sw.WriteLine("<tr><td><b>" + dt_user.Rows[i][2].ToString() + "</b></td><td><b>"+ dt_user.Rows[i][0].ToString() + "</b></td><td><b>"+ dt_user.Rows[i][0].ToString() + "</b></td></tr>"); 
}

Предпоследним этапом записывается то что, осталось в третьей части HTML документа:

// конец файла sw.WriteLine("</table></div></body></html>");

Осталось только закрыть файл и вызвать процесс, который откроет браузер и файл в нём:

sw.Close(); // закрываем файл Process.Start("explorer.exe", path); // открываем в браузере

Весь код функции:

// Импорт данных 
void CreateHTML() {
    string path = "index.html"; // название файла   
    StreamWriter sw = new StreamWriter(path); // создаём файл     // создаём первую часть 
    sw.WriteLine("<html><head><title>HTML File</title><style>body {background-color: #81ff81;} .page {width: 80%; margin: 10px auto;  background-color: #fff; padding: 50px; } td { border: 1px solid black; padding: 10px 20px; width: 200px; } </style></head><body><div class = page><h2>Заголовок</h2><table cellspacing = 0 cellpadding = 0><tr><td><b>Фото</b></td><td><b>Логин</b></td><td><b>Пароль</b></td></tr>");
    DataTable dt_user = Select("SELECT * FROM [dbo].[users]"); // получаем данные из файла   
    for (int i = 0; i < dt_user.Rows.Count; i++) // перебираем данные   
    {         // записываем в файл      
        sw.WriteLine("<tr><td><b>" + dt_user.Rows[i][2].ToString() + "</b></td><td><b>"+ dt_user.Rows[i][0].ToString() + "</b></td><td><b>"+ dt_user.Rows[i][0].ToString() + "</b></td></tr>");
    }     // конец файла
    sw.WriteLine("</table></div></body></html>");
    sw.Close(); // закрываем файл   
    Process.Start("explorer.exe", path); // открываем в браузере
}

После запуска программы можно увидеть, как программа запускает браузер и отображает в нём созданную HTML страницу.

WPF - результат создания HTML страницы

Таким способом можно создать HTML документ из WPF приложения.

Автор статьи: Александр Каримов

5/5 (1)

Оцените