Скопируйте HTML-таблицу в Excel - PullRequest
1 голос
/ 29 июля 2011

Я должен написать программу, которая периодически читает веб-страницу и копирует определенные данные из таблицы на этой странице в электронную таблицу Excel. Я не знаю, с чего начать или какой язык программирования подходит для этого проекта. Я немного знаю программирование на C ++ и Matlab. Может кто-нибудь предложить совет, чтобы указать мне правильное направление или предложить проекты с открытым исходным кодом, которые делают что-то подобное?

Я могу использовать wget (linux) или fget1 (matlab) для загрузки веб-страниц, но я не знаю, как сохранить определенные данные из источника этих веб-страниц в Excel.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2016

Я использовал следующий код vb.net для анализа нескольких таблиц html с сохраненной веб-страницы в таблицу данных (таблица должна иметь одинаковую структуру) (используя Html-Agility-Pack) и сохранить ее в файл XML:

    Imports System.Net

    Public Sub ParseHtmlTable(byval HtmlFilePath as String)

    Dim webStream As Stream
    Dim webResponse = ""
    Dim req As FileWebRequest
    Dim res As FileWebResponse

    req = WebRequest.Create("file:///" & HtmlFilePath)

    req.Method = "GET" ' Method of sending HTTP Request(GET/POST)

    res = req.GetResponse ' Send Request

    webStream = res.GetResponseStream() ' Get Response

    Dim webStreamReader As New StreamReader(webStream)

    Dim htmldoc As New HtmlAgilityPack.HtmlDocument
    htmldoc.LoadHtml(webStreamReader.ReadToEnd())

    Dim nodes As HtmlAgilityPack.HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//table/tr")

    Dim dtTable As New DataTable("Table1")

    Dim Headers As List(Of String) = nodes(0).Elements("th").Select(Function(x) x.InnerText.Trim).ToList

    For Each Hr In Headers

        dtTable.Columns.Add(Hr)

    Next

    For Each node As HtmlAgilityPack.HtmlNode In nodes

        Dim Row = node.Elements("td").Select(Function(x) x.InnerText.Trim).ToArray

        dtTable.Rows.Add(Row)

    Next

    dtTable.WriteXml("G:\1.xml", XmlWriteMode.WriteSchema)

    End Sub

После этого импортируйте файл в Excel

Прочтите эту Статью , чтобы импортировать XML в Excel

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

0 голосов
/ 29 июля 2011

Я предполагаю, что у вас есть место для изучения C #. Поскольку вам нужно извлечь таблицу из веб-страницы, вам нужна специальная библиотека / фреймворк для работы с веб-браузером, например, Watin. После получения таблицы необходимо сохранить таблицу в Excel. Для удобства вы можете написать формат CSV (текст через запятую) и Excel может открыть файл. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...