Вставка и обновление значения из внешнего источника

Автор marat8888, 17 июля 2023, 23:26

0 Пользователи и 1 гость просматривают эту тему.

marat8888

Здравствуйте, пожалуйста помогите, подскажите как можно реализовать подтягивание и обновлении в таблице актуальной цены акции

Например в гугл таблицах это реализуется так

https://dzen.ru/media/justcountit/kak-uznat-tekuscuiu-cenu-na-akcii-mosbirji-cherez-gugltablicy-5f313763a54190704e74d046

Заранее благодарю

marat8888


economist

Рассмотрите такой вариант:
1) Ищем/пишем скрипт на Python (есть готовые YahooFinans, Edgar-online, ... ) 
2) В коде дописываем 3 строки:
import pandas as pd
import odfpy
table.to_excel('D:/out.ods')
3) ссылаемся формулами из своих Calc-файлов на этот
4) сам python-скрипт запускаем по кнопке из Calc (макрос искать на Форуме по слову invoke python), по Планировщику итп.

Также см. https://habr.com/ru/post/498268/
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

#3
Насколько я понимаю, IMPORTXML в Google Sheets грузит XML по URL, и обрабатывает его с использованием XPath.

В Calc эти две операции делаются раздельно функциями WEBSERVICE и FILTERXML.

Скажем, "Для ETF" там приведена формула

Цитировать=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",A10,"']/@LAST"))

В Calc её аналог:

=FILTERXML(WEBSERVICE("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST");CONCATENATE("//row[@SECID='";A10;"']/@LAST"))
С уважением,
Михаил Каганский

marat8888

#4
Цитата: mikekaganski от 18 июля 2023, 09:31Насколько я понимаю, IMPORTXML в Google Sheets грузит XML по URL, и обрабатывает его с использованием XPath.

В Calc эти две операции делаются раздельно функциями WEBSERVICE и FILTERXML.

Скажем, "Для ETF" там приведена формула

Цитировать=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",A10,"']/@LAST"))

В Calc её аналог:

=FILTERXML(WEBSERVICE("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST");CONCATENATE("//row[@SECID='";A10;"']/@LAST"))

Спасибо за наводку. Ваш код копирую в Open Office, не работает, #ИМЯ пишет и всё. С ОО без шансов я так понял? Так как смотрю что хелп был для Либры. Правда в Либре у меня так же не работает, но уже Err:507

economist

В LibreOffice c русскими функциями нужно поменять названия 3-х функций из примера.

Есть "План Б" для котировок Мосбиржи: https://pypi.org/project/apimoex/
Под OO c его "внутренним" Python заработает с высокой вероятностью. Вернуть в Calc котировку можно UDF c методом invoke(). Примеры простых UDF Calc, c вызовом py-скриптов, есть на Форуме.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...