MR.alaa Ответов: 1

Передача HTML таблицы в сеточное представление C#


всем привет
я использую элемент управления web browers в своей форме windows, у меня есть html-таблица на веб-странице, Я вхожу в эту таблицу и получаю каждое значение ячейки, которое нужно передать agridview до тех пор, пока не будет закончена первая строка, затем вторая и так далее .

вместо сообщения передайте каждую строку в каждую ячейку сетки до тех пор, пока первая строка не будет закончена, а затем вторая строка каждая строка имеет четыре ячейки, как это можно сделать ?

Что я уже пробовал:

HtmlElement table = webBrowser1. Document.GetElementById ("Таблица 1");
пробовать
{
по каждому элементу (объект HTMLElement строки в таблице.GetElementsByTagName ("TR"))
{
Клетки HtmlElementCollection = ряд.GetElementsByTagName ("td");
по каждому элементу (объект HTMLElement клеток в клетки)
{

Строковый текст = ячейка.Через свойство innerText;
if (! String.IsNullOrEmpty (text) && !String.IsNullOrWhiteSpace (текст))
{
Ящик для сообщений.Показать (текст);

}
}
}
}
поймать (кроме об )
{

}

Maciej Los

Простите, в чем ваша проблема? Вы упомянули, что хотите преобразовать html-таблицу в сеточное представление. Что вы имеете в виду?

1 Ответов

Рейтинг:
4

pparya27

В соответствии с вашим требованием я написал следующий фрагмент кода. Это может помочь. В любом случае, почему у вас есть такое требование?


Я использовал следующий HTML-файл (testtable.html) :

<html>
<body>

<table border="1" id="mytable" width="300px">

<tr><td>16</td><td>17</td><td>18</td><td>19</td></tr>
<tr><td>32</td><td>34</td><td>36</td><td>38</td></tr>
<tr><td>48</td><td>51</td><td>54</td><td>57</td></tr>
<tr><td>64</td><td>68</td><td>72</td><td>76</td></tr>
<tr><td>80</td><td>85</td><td>90</td><td>95</td></tr>
</table>

</body>
</html>



Часть 1: Загрузка HTML-файла в элемент управления WebBrowser :

Способ 1: разместив его на любом веб-сервере :

webBrowser1.Url = new Uri("http://10.10.10.10/testtable.html");


Способ 2: Загрузка из локального html-файла :

FileStream fs= File.Open(@"D:\Programming Bench\WindowsFormsApplication1\WindowsFormsApplication1\testtable.html",FileMode.Open);
webBrowser1.DocumentStream = fs;



Часть 2: Получение данных из WebBrowser Control и загрузка в DataGridView

private void btnGetDataFromWebBrowserCtrl_Click(object sender, EventArgs e)
       {
           HtmlElement mytable = webBrowser1.Document.GetElementById("mytable");

           DataTable dtData = new DataTable();
           dtData.Columns.Add("column1");
           dtData.Columns.Add("column2");
           dtData.Columns.Add("column3");
           dtData.Columns.Add("column4");
           dtData.AcceptChanges();

           DataRow dr = null;

           foreach (HtmlElement row in mytable.GetElementsByTagName("tr"))
           {
               dr = dtData.NewRow();
               HtmlElementCollection cells = row.GetElementsByTagName("td");
               for (int i = 0; i < cells.Count; i++)
               {
                   dr[i] = cells[i].InnerText;
               }
               dtData.Rows.Add(dr);
           }
           dtData.AcceptChanges();

           dataGridView1.DataSource = dtData;

       }


Надеюсь, это поможет !!