|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
В таблице часть рассчетов привязана к актуальному курсу EUR к доллару Европейского Центрального банка. Для этого в таблице в листе "Данные" в соотв. ячеку, пока вручную, каждый день вносятся значения актуального курса валюты с сайта http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html . Есть ли возможность в Excele-e прописать формулой брать значение для ячейки из соотв. раздела на странице банка при каждом запуске таблицы: USD US dollar 1.3448. К слову, на странице присутствует инструкция для разработчиков "For developers", но скорее сайтов, чем таблиц... How to parse the data Regular expression example <?php //This is a PHP(4/5) script example on how eurofxref-daily.xml can be parsed //Read eurofxref-daily.xml file in memory //For this command you will need the config option allow_url_fopen=On (default) $XMLContent=file(" http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"); //the file is updated daily between 2.15 p.m. and 3.00 p.m. CET foreach($XMLContent as $line){ if(preg_match("/currency='([[:alpha:]]+)'/",$line,$currencyCode)){ if(preg_match("/rate='([[:graph:]]+)'/",$line,$rate)){ //Output the value of 1EUR for a currency code echo'1€='.$rate[1].' '.$currencyCode[1].'<br/>'; //-------------------------------------------------- //Here you can add your code for inserting //$rate[1] and $currencyCode[1] into your database //-------------------------------------------------- } } } ?> XML parser example <?php function StartElement($parser, $name, $attrs) { if (!empty($attrs['RATE'])) { echo "1€=".$attrs['RATE']." ".$attrs['CURRENCY']."<br />"; } } $xml_parser= xml_parser_create(); xml_set_element_handler($xml_parser, "StartElement", ""); // for the following command you will need file_get_contents (PHP >= 4.3.0) // and the config option allow_url_fopen=On (default) xml_parse($xml_parser, file_get_contents (" http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml")); xml_parser_free($xml_parser); ?> SimpleXML example <?php //This is aPHP(5)script example on how eurofxref-daily.xml can be parsed //Read eurofxref-daily.xml file in memory //For the next command you will need the config option allow_url_fopen=On (default) $XML=simplexml_load_file(" http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"); //the file is updated daily between 2.15 p.m. and 3.00 p.m. CET foreach($XML->Cube->Cube->Cube as $rate){ //Output the value of 1EUR for a currency code echo '1€='.$rate["rate"].' '.$rate["currency"].'<br/>'; //-------------------------------------------------- //Here you can add your code for inserting //$rate["rate"] and $rate["currency"] into your database //-------------------------------------------------- } ?> 1€=1.3448 USD 1€=102.59 JPY 1€=1.9558 BGN 1€=24.878 CZK 1€=7.4458 DKK 1€=0.87325 GBP 1€=293.06 HUF 1€=3.4528 LTL 1€=0.7093 LVL 1€=4.4863 PLN 1€=4.3055 RON 1€=9.2762 SEK 1€=1.2275 CHF 1€=7.8270 NOK 1€=7.4845 HRK 1€=43.2059 RUB 1€=2.4636 TRY 1€=1.3691 AUD 1€=2.4887 BRL 1€=1.3894 CAD 1€=8.6040 CNY 1€=10.4904 HKD 1€=12246.50 IDR 1€=4.9945 ILS 1€=66.6720 INR 1€=1605.66 KRW 1€=18.6738 MXN 1€=4.2744 MYR 1€=1.7185 NZD 1€=58.919 PHP 1€=1.7547 SGD 1€=41.379 THB 1€=11.0754 ZAR Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 04:31 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, воспользоваться поиском вам религия не позволяет? http://excelvba.ru/code/CurrencyRate ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 05:36 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Ок, а как быть, еcли импортировать данные нужно не с сайта ЦБР, а из XML-файла: http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml : <?xml version="1.0" encoding="UTF-8"?> -<gesmes:Envelope xmlns=" http://www.ecb.int/vocabulary/2002-08-01/eurofxref" xmlns:gesmes=" http://www.gesmes.org/xml/2002-08-01"> <gesmes:subject>Reference rates</gesmes:subject> -<gesmes:Sender> <gesmes:name>European Central Bank</gesmes:name> </gesmes:Sender> -<Cube> -<Cube time="2011-09-22"> <Cube rate="1.3448" currency="USD"/> <Cube rate="102.59" currency="JPY"/> <Cube rate="1.9558" currency="BGN"/> <Cube rate="24.878" currency="CZK"/> <Cube rate="7.4458" currency="DKK"/> <Cube rate="0.87325" currency="GBP"/> <Cube rate="293.06" currency="HUF"/> <Cube rate="3.4528" currency="LTL"/> <Cube rate="0.7093" currency="LVL"/> <Cube rate="4.4863" currency="PLN"/> <Cube rate="4.3055" currency="RON"/> <Cube rate="9.2762" currency="SEK"/> <Cube rate="1.2275" currency="CHF"/> <Cube rate="7.8270" currency="NOK"/> <Cube rate="7.4845" currency="HRK"/> <Cube rate="43.2059" currency="RUB"/> <Cube rate="2.4636" currency="TRY"/> <Cube rate="1.3691" currency="AUD"/> <Cube rate="2.4887" currency="BRL"/> <Cube rate="1.3894" currency="CAD"/> <Cube rate="8.6040" currency="CNY"/> <Cube rate="10.4904" currency="HKD"/> <Cube rate="12246.50" currency="IDR"/> <Cube rate="4.9945" currency="ILS"/> <Cube rate="66.6720" currency="INR"/> <Cube rate="1605.66" currency="KRW"/> <Cube rate="18.6738" currency="MXN"/> <Cube rate="4.2744" currency="MYR"/> <Cube rate="1.7185" currency="NZD"/> <Cube rate="58.919" currency="PHP"/> <Cube rate="1.7547" currency="SGD"/> <Cube rate="41.379" currency="THB"/> <Cube rate="11.0754" currency="ZAR"/> </Cube> </Cube> </gesmes:Envelope> ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 09:37 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, макрорекодером брезгуете ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 10:09 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, сорри, QueryTable там лишнее. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 10:22 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Вот есть готовый кодик на этот случай - переделайте под себя: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 11:38 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Хотя не посмотрел - у EducatedFool ведь тоже ссылка на пример работы с xml. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 11:45 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
пробуй камнем, автор"FINDER;C:\temp\xl_\eurofxref-daily.xml", Ссылка на сохраненный файл - обязательна? Или можно, чтоб Excel обращался за значением на прямую в XML-файл по адресу http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml и забирал цифровое значение из строки: <Cube rate="1.3448" currency="USD"/> , переводя его в формат "1,3448" Hugo121 Переделал, как мог (в исходном примере нужна таблица, а не XML, поэтому ссылка http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html), не сработало :( Private Sub Code1() Dim sURI As String, i& For i = 1 To 6 sURI = Cells(i, 1).Text '" http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html" With CreateObject("MSXML2.XMLHTTP"): .Open "GET", sURI, False: .Send: htmlcode = .responseText: End With Cells(i, 2) = Replace(Mid(htmlcode, InStr(1, htmlcode, "US dollar") + 35, 7), ",", ".") Next End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 11:59 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, в том примере ссылка была только для примера :) Тот код брал адреса с листа, судя по коду - 6 штук. Вам нужно убрать цикл, задать sURI, подправить Cells(i, 2) = Replace(Mid(htmlcode, InStr(1, htmlcode, "US dollar") + 35, 7), ",", ".") ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 12:02 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Получится Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Но надёжнее с Node работать - там не ошибёшся. Но кода больше. А этот даже можно на пару переменных сократить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 12:12 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Создал модуль в "Visual Basic", внес данный код в него. Как теперь запустить его (в макросах - не показывается), чтоб в заданной ячейке вписывалось числовое значение, вытащенное с сайта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 15:57 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, чтоб показывался - уберите Private/ А так запускать можно сделанной кнопкой, или по событию листа/книги, или таймером, или... Из редактора по F8 отработал правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 16:03 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Да, по F8 - сработал! Спасибо! Как сделать, чтоб при открытии файла/книги сразу проверял курс/писал в заданную ячейку значение? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 16:46 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, в редакторе ВБА в модуле книги выбираете событие открытия книги (в окне, где пишете код, вверху есть выпадающие списки), в этот код пишете содержимое Sub Code1() или ставите ссылку на этот код (т.е. просто одно слово Code1), но тогда Sub Code1() должен быть в модуле (ну или желательно, если к словам придираться...) Но тогда в коде точно укажаите, на какого листа Cells(1, 1) хотите данные вставлять - т.к. при открытии книги активный лист может быть какой угодно, какой оставили. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 16:55 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Хотя в таком случае лучше код как UDF использовать: в модуль Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
на листе в ячейку =USD_ecb() Будет правда пересчитываться при каждом чихе... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 17:02 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Коротко, четко и работает! СПАСИБО! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 17:13 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Одна беда: формат не тот - функция возвращает цифру с точкой, а нужна запятая. Oстальные завязанные на курс формулы принимают точку за разделение тысяч, а не за разделитель целого от десятых ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 17:21 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starter, замените в коде точку на что Вам нужно. USD_ecb=replace(USD_ecb,".",",") Ну и может быть ещё тип числовой задать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 17:33 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Красота! Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2011, 18:29 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Hugo121, Что-то изменилось и почему-то Excel перстал получать данные с адреса http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml (сам адрес в браузерах - открывается). Как-то надо изменить скрипт? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Модератор: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 14:49 |
|
Excel 2010: Сможет ли Excel брать значение для ячейки(курс валюты) с интернет-сайта банкa?
|
|||
---|---|---|---|
#18+
Excel-Starterсам адрес в браузерах - открываетсяДа, потому что действует перенаправление на https. У Вас этого нет. Запишите в ссылке вместо http - https и все заработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2018, 15:56 |
|
|
start [/forum/topic.php?fid=61&msg=37454023&tid=2172253]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 475ms |
0 / 0 |