Страницы: 1
RSS
импорт из интернета, аналог функции гугл таблиц ImportXML
 
здравствуйте, перед тем как читать дальше пожалуйста ознакомтесь с ссылкой: http://api.eve-central.com/api/marketstat?typeid=2393&usesystem=30000142&hours=8

это ссылка-запрос к базе данных о информации по продажам товара с typedid=2393. само собой в моей таблице надо с сайта выковыривать много инфармации по разным товарам. если вы откроете ссылку напрямую увидите кучу циферок и точек строкой, но открыв код страницы поймете что там на сам деле информация обрамлена тегами. так вот в гугл таблицах есть функция importXML, которая имеет 2 аргумента: 1-адресс страницы, второе адрес на странице(по дереву вложенных тегов тегов) и возвращает функция число записанное по этому адресу. я бы жил и не тужил если бы в гугл таблицах эта функция работала нормально. но вот не срослось. есть ли подобные функции в экселе?

цель содрать в таблицу информацию по всем товарам (тысячи штук) с помощью варьирования typeid=* в адресе-запросе.  и на самом деле в этом дереве тегов мне нужны не все числа, хотелось бы импортировать не всю информацию со страницы. кто-то может мне попробовать помочь что делать? и пс со способом Данные => из веба я ознакомился, может я там делал что-то не так но у меня есть только возможность слить по зарание заготовленной ссылке сразу 21 число а нужно только одно, но это пол беды, потому что я хочу чтобы ссылки генерировались динамически а не приходилось 1000 запросов руками лепить.
 
Доброе время суток
Аналогичной функции в Excel нет. Но можете написать макрос, используя ActiveX Microsoft XML. Он подходит как для получения по ссылке xml  файла отклика, так и для получения значения по заданному пути. Примеры и того и того на форуме есть.
Успехов
 
а как научиться писать макросы? я долго не пользовался экселем и за это время много чего тут поменялось. не посоветуете ли вы мне обучающую литературу (п.с. я не програмист и не хотелось бы подолгу вчитываться во что-то сильно сложное) буду очень признателен. или подскажите как найти на этом форуме подходящую тему чтоб поднять ее на поверхность? конечно я буду долго все выгугливать и копаться в литературе, но если бы вы меня сразу на путь истинный наставили то было бы здорово

(п.с. поисковик на сайте баразлит и не находит слова ActiveX Microsoft XML, а оно есть хотябы в этой теме :)  так что хз с чего поиск начать в таком случае)
 
Про макросы можете почитать в разделе приёмы сайта. По XML
 
Чтобы вам было проще, вариант реализации функции ImportXML udf-функцией
Код
Public Function ImportXML(ByVal url As String, ByVal XPath As String) As Variant
On Error GoTo errHandle
    Dim pDoc As Object, t As Single, pNode As Object
    Set pDoc = CreateObject("MSXML2.DOMDocument")
    t = Timer
    pDoc.Load url
    Do Until (pDoc.readyState = 4) Or ((Timer - t) > 1)
        DoEvents
    Loop
    If pDoc.readyState <> 4 Then ImportXML = CVErr(XlCVError.xlErrRef): Exit Function
    Set pNode = pDoc.SelectSingleNode(XPath)
    If pNode Is Nothing Then ImportXML = CVErr(XlCVError.xlErrNull): Exit Function
    ImportXML = pNode.Text
Exit Function
errHandle:
    ImportXML = CVErr(XlCVError.xlErrNA)
End Function

Успехов.
Изменено: Андрей VG - 03.06.2016 06:46:43
 
спасибо огромное за рабочую функцию вроде даже понял куда ее тыкать надо, но все равно хочу научиться писать функии и макросы сам. скачал книгу "профессиональное программирование на VBA - 2012" автор Дж. Уокенбах можите ли вы оценить качество книгистоит ли ее читать или есть что-то лучше? я по части прогания тока дифуры на С умею решать, так что тут с нуля начать надо.
 
Цитата
Golosalex написал: стоит ли ее читать или есть что-то лучше
имхо... на форумах больше кода и вариабельность задач, меньше описаний и так понятных вещей... поэтому лучше не читать, а писать... если читать, то сами коды - найденные и на форумах и в google по вашим вопросам в том числе... решать какие-то простейшие задачи (можно и свои, и чужие - их хватает)... в любом случае, чтобы выучить язык, - на нём надо говорить (всё прочитанное не запомните, если не внедрите в свои решения своих задач)... в школе ведь учили прозу, не только читали, - но помнится с трудом, особенно дословно... а в программировании не только каждое слово важно, но и каждый символ... почувствуйте смысл языка - и излагайте на нём любые мысли  :) свои...книги только те, в которых есть знания, применимые к вашим текущим задачам... остальное, может, и не скоро и неизвестно - пригодится ли?
Изменено: JeyCi - 05.06.2016 20:26:28
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
конечно что-то есть в ваших словах, но если я даже не понимаю значени используемых слов в коде, то читать код и пытаться в нем разобраться преждевременно.

мне бы хотябы получить общее представление что к чему.
 
Доброе время суток
Golosalex, нормальную книгу вы взялись читать для освоения. Если будет тяжело, то можете попробовать что-нибудь вроде VBA в MS Office 2007
Успехов.
 
Цитата
Андрей VG написал:
Чтобы вам было проще, вариант реализации функции ImportXML udf-функцией Код
Добрый день. Пытаюсь воспользоваться этой функцией и не получается. Завел ее, ввожу в ячейке функцию:
"=ImportXML("https://santeh-magazin.ru/products/verchnii-dush-sm1108aa_r";"//*[@itemprop='price']/@content")"
И она выдает #ПУСТО!
Как правильно пользоваться этой функцией?
Страницы: 1
Наверх