8
Tengo una tabla html. Quiero convertir esto en una tabla de datos. ¿Cuál es la mejor manera de hacerlo? Gracias¿Cuál es la mejor forma de convertir una tabla Html a datatable
Tengo una tabla html. Quiero convertir esto en una tabla de datos. ¿Cuál es la mejor manera de hacerlo? Gracias¿Cuál es la mejor forma de convertir una tabla Html a datatable
No analice el HTML usted mismo, existen bibliotecas de análisis que pueden hacer eso por usted. Junto con el HTML Agility Pack y LINQ, puede hacer un trabajo corto de esto.
var doc = new HtmlDocument();
doc.Load(url);
var nodes = doc.DocumentNode.SelectNodes("//table/tr");
var table = new DataTable("MyTable");
var headers = nodes[0]
.Elements("th")
.Select(th => th.InnerText.Trim());
foreach (var header in headers)
{
table.Columns.Add(header);
}
var rows = nodes.Skip(1).Select(tr => tr
.Elements("td")
.Select(td => td.InnerText.Trim())
.ToArray());
foreach (var row in rows)
{
table.Rows.Add(row);
}
con algunas pequeñas personalizaciones, funciona como un encanto –
¿Esto cuidar de colspans y un estilo de mesa (CSS)? Esto parece que simplemente traduciría los datos y el marcado del elemento – user327999
@ user327999: no, esto es solo un mapeo de uno a uno. DataTables no tiene tal cosa de todos modos AFAIK. –