Excel 2007 с использованием веб-сервисов (в частности, Google Finance)

2

Может ли Excel 2007 получать доступ к веб-службам, в частности к Google Finance или Yahoo Finance?

Я бы хотел, чтобы моя рабочая тетрадь автоматически обновляла цены акций / фондов с любого из этих сайтов.

Я знаю, что вы можете импортировать таблицы с веб-сайтов (Импорт данных из Интернета), но это не отвечает моим потребностям. В Google Spreadsheets есть функция GoogleLookup для автоматического поиска цен, но я бы предпочел использовать Excel, чтобы использовать сводки, форматирование таблиц и т. Д.

Если нет, то есть ли в Excel 2010 такая возможность?

седло
источник
Теперь голосуем за миграцию по переполнению стека. Я думал, что есть «пользовательский» ответ, как я описал сначала, чтобы просто активировать библиотеку. Тем не менее, кажется, что единственные способы сделать это требуют Visual Studio или вообще больше связанных с программированием вещей, и этот вопрос, вероятно, будет лучше на Stack Overflow.
Gnoupi
1
я думаю, что этот вопрос, как написано в настоящее время, лучше оставить здесь, в Super User @gnoupi ... но если ответ действительно "сделать это из Visual Studio", последующие вопросы о конкретных методах или функциях должны быть отправлены в Stack Overflow.
шарлатан-кихот
Я собираюсь исследовать маршрут кодирования, выделенный Gnoupi. Будут публиковать любые дальнейшие вопросы типа кодирования на StackOverflow.
полковник

Ответы:

1

Вот ссылка на всю необходимую информацию, которая понадобится вам для использования библиотеки «Microsoft Office Soap Type Library v3.0». Нажмите здесь для подробной документации. , Также вот пример, показывающий, как использовать некоторые данные котировки акций.

Похоже, вам придется немного заняться программированием на VBA, но, похоже, вы можете загрузить множество примеров и даже примеров книг Excel.

Наслаждайтесь!

Doug
источник
Это действительно только для версий Excel до 2007 года, таких как Excel XP, к сожалению.
Gnoupi
Привет Gnoupi, я не вижу причин, почему это не будет работать в 2007 году? Позже я соберу пример позже этим днем ​​/ события и отправлю его для вас.
Дуг
Как я сказал более или менее в своем ответе, он будет работать в 2007 году, библиотека даже уже включена, но у вас не будет помощника, позволяющего создавать объекты непосредственно из веб-службы. Кроме того, из нескольких источников кажется, что это не рекомендуемый способ сделать что-то больше в новых версиях. Например, этот компонент не поддерживает WS-безопасность.
Gnoupi
1

Полностью выполнимо через VBA.

Dim objHttp As Object, strURL as string, strText as string

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")

strURL = "http://www.google.com/finance?q=NASDAQ%3AMSFT"

objHttp.Open "GET", strURL, False
objHttp.setRequestHeader "User-Agent", _
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHttp.Send ("")

strText = objHttp.responseText

'And this is where you parse apart the strText 
'(effectively the HTML of the site) to locate your relevant data

Set objHttp = Nothing
вариант
источник
0

Редактировать: это работает только для Excel 2003 (хотя также требует установки плагина)

Может, да. Вам нужно активировать их в VBA.

  1. Откройте редактор Visual Basic (Alt + F11)
  2. Нажмите на Инструменты> Ссылки
  3. В появившемся списке найдите компонент с именем «Microsoft Office Soap Type Library v3.0» и проверьте его
  4. Нажмите OK, компонент установлен.

Чтобы сгенерировать методы для доступа к веб-службе, необходимо указать файл определения (wsdl) в пункте меню «Справочник по веб-службе» в инструментах, которые должны появиться после.

Чтобы на самом деле получить доступ к данным с этого момента, вам понадобится программирование на VBA, и я приглашаю вас задать больше вопросов об этом на нашем родственном сайте, посвященном вопросам программирования, Stack Overflow .


Хорошо, этот метод работал в Excel 2003, но в настоящее время кажется, что он не рекомендуется. Я не могу найти меню, о котором я тебе говорил. Библиотека, на которую я ссылался, вероятно, используется для совместимости.

Теперь все, что я могу найти по этому поводу, это сделать это из Visual Studio 2008 или следовать указаниям в этом вопросе о переполнении стека .

Gnoupi
источник
Спасибо Gnoupi Добавили ссылку, но пункт меню Ссылка на веб-сервис не появляется. Я пытался сохранить, закрыть и снова открыть книгу.
полковник
@Col - у меня нет доступа к Excel 2007 прямо сейчас, я проверю позже. Запись может быть другой, я дал имя по памяти.
Gnoupi
Спасибо за ссылки Gnoupi, меня особенно интересует опция VS2008, так как я все равно являюсь разработчиком C #. Надеялся на простой способ сделать это, не включающий кодирование в виде электронных таблиц Google
полковник
@Col - даже с компонентом, который я знаю из Excel 2003, вам понадобится хотя бы немного программирования, чтобы поместить результаты веб-сервиса в таблицу. Этот компонент будет возвращать объекты, определенные в WS, но это все.
Gnoupi