Могут ли макросы Excel подгрузить информацию в документ из сети?
Подскажите, пожалуйста, насколько широки возможности ВСТРОЕННЫХ макросов Excel? Может ли макрос подгрузить какой-нибудь произвольный текст с моего сервера и вставить его в ячейку?
Цель: чтобы при открытии таблицы данные в ячейках автоматически обновлялись, подтягиваясь с моего сайта. Нужно это для обновления остатков товара на лету.
Меня пока что не интересует техническая реализация, просто прошу ответить - реализуемо ли это в принципе или я хочу невозможного.
«CMD/BAT» не при деле.
«МАКРОСЫ» — слишком общий тег, макросы в Excel пишутся на VBA (вроде бы в последних выпусках можно использовать JS, но подробнее ничего не скажу).
«VBSCRIPT» можно использовать, так же как и другие языки, позволяющие использовать технологию COM, но в этом случае Excel вызывается из скрипта, как сервер автоматизации, если макрос надо вызывать из самого Excel, то надо использовать VBA (синтаксис близок к VBS).
сергей кузьмин, селениум для VBA это слишком упорото даже для меня) Не, хочу попробовать парсить инфу из встренного в Excel макроса VBA нативно, не привлекая внешних програм. Очень надеюсь, что во встроенных макросах Excel нет никаких запретов на запрос данных по сети, вот что меня беспокоит.
Надим Закиров, смотите сами - селенум это стандарт а с древними / допотопными mshtml и internet explorer COM проблематично собственно получать информацию со страниц
сергей кузьмин, да я как бы вообще не хочу использовать браузеры. Должны же быть нативные инструменты для GET-запросов в VBA или они специально запрещены во встроенных макросах Excel? Вот что меня волнует)
Надим Закиров, проблема в том что современные сайты ну просто совершенно не хотят чтобы их скрапили без браузера - как говорится лечшее что имеем
"звук бюджетный, невыразительный, начального уровня" а чаще вообще ничего
Кажется кто-то уже написал за меня большую часть кода. Для меня этот пример с запросом на VBA фактически бесценен) Прикрутить к нему вставку спарсенных данных уже дело техники, разберусь.
Private Function getData(strUrl As String) As String
Dim http As Object
On Error Resume Next
Set http = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set http = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If http Is Nothing Then
getData = ""
Exit Function
End If
http.Open "GET", strUrl, False
http.Send
getData = http.responseText
Set http = Nothing
End Function
Спасибо, буду пробовать. Хочу в идеале создать Excel-документ с уже встроенным макросом-обновлятором. Просто не хотел браться за дело, не имея уверенности, что это в принципе возможно =)
Надим Закиров, мне кажется что Google Spreadsheets тут лучше подойдёт. Отредактировал - и всё у всех поменялось. Особенно если нужно "только чтение" - тогда можно просто сделать Файл - Опубликовать в Интернете и дать ссылку всем в любом удобном формате (web страница, pdf, csv и т.п.).
Григорий Боев, нужен именно Excel. Я бы и html-сделал, но заказчик хочет именно что само-обновляющийся Excel-документ. Да и честно сказать, мне даже интереснее в таком варианте все делать, лишь бы это возможно было, а дальше все будет зависеть лишь от моего упорства.
Спасибо, буду пробовать. Хочу в идеале создать Excel-документ с уже встроенным макросом-обновлятором. Просто не хотел браться за дело, не имея уверенности, что это в принципе возможно =)
Спасибо, буду пробовать. Хочу в идеале создать Excel-документ с уже встроенным макросом-обновлятором. Просто не хотел браться за дело, не имея уверенности, что это в принципе возможно =)
Спасибо, буду пробовать. Хочу в идеале создать Excel-документ с уже встроенным макросом-обновлятором. Просто не хотел браться за дело, не имея уверенности, что это в принципе возможно =)