有没有办法在MS-Excel中导入当前汇率并保持更新? Excel提供了一种调用URL并将响应导入单元格的方法。
有几位教授。互联网上的服务,但我想确保没有数据记录,并提供的信息是最新的。它应该是免费的......
答案 0 :(得分:1)
这是一个无编码的解决方案。您可以从Yahoo Finances以CSV格式下载数据,并将其作为查询导入Excel。
如何将数据从Yahoo Finances导入Excel?
转到数据→从网络。
在字段URL
中指定数据网址,例如对于美元兑欧元汇率:
http://download.finance.yahoo.com/d/quotes.csv?s=USDEUR=X&f=b
按加载。将自动创建包含所需数据的新工作表。
您可以通过分别取消选择标题行和带状行来隐藏标题和单元格的样式。
这就是全部,现在你有一个包含所需数据的单元格。您可以像在Excel中的任何其他单元格那样引用单元格。
很高兴知道:
您可以通过单击数据→全部刷新手动触发数据刷新。对于打开工作簿时的自动更新:https://support.office.com/en-US/article/Refresh-an-external-data-connection-in-Excel-2016-for-Windows-1524175f-777a-48fc-8fc7-c8514b984440
上例中的网址包含&f=b
片段,即出价。有关详细的Yahoo Finances查询数据参数,请参阅:http://www.financialwisdomforum.org/gummy-stuff/Yahoo-data.htm
答案 1 :(得分:0)
调用网址http://genia.berlin/usd.php以获得与美元相比的实际汇率。精度为小数点后4位。错误的调用返回空结果,没有错误消息。以ISO 4217表示法给出的一个参数,例如:http://genia.berlin/usd.php?eur
提供的信息不附带任何保证!
可在此处找到包含屏幕截图的分步解决方案:https://eves.genia.berlin/excelquery_e.html
创建一个文本文件。名称可以自由选择。请确保URL后面有一个空行。
WEB
1
http://genia.berlin/usd.php?["Currency","Enter currency code (ISO 4217)"]
Selection=EntirePage
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=True
启动Excel并显示以下菜单:数据/获取外部数据/运行保存的查询... 从上一节中键入文本文件的位置和名称(例如,excelquery.txt)。 该查询被视为公式。分配的单元格可以存储在另一个工作表中。
在选择属性时,可以在打开Excel文档时设置不同的设置,例如自动更新。
有三种方法可以选择货币作为参数。
在对话框中提示用户指定货币。他还可以确定是否在将来更新同一文档时再次使用该输入。
下次调用Excel文件时,会发出警告。必须由用户确认数据检索的连接。
以下是服务器端的代码剪切(PHP):
<?php
if ($p= substr ($_SERVER['QUERY_STRING'], 0, 3)) {
$pu= strtoupper ($p);
if (preg_match ('/^(?:
BGN|CHF|CZK|DKK|EEK|EUR|GBP|HRK|HUF|ISK|LTL|LVL|MDL|MKD|NOK|PLN|RON|RSD|RUB|SEK|SKK|TRY|UAH|
BDT|BND|CNY|FJD|HKD|IDR|INR|JPY|KRW|LKR|MVR|MYR|NPR|PHP|PKR|SGD|THB|TWD|VND|IQD|
ANG|ARS|BOB|BRL|CAD|CLP|COP|CRC|DOP|HNL|KYD|MXN|NIO|PEN|PYG|SVC|TTD|UYU|VEF|
BWP|DZD|EGP|KES|MAD|MUR|NAD|NGN|PGK|SCR|SLL|TZS|UGX|XOF|ZAR|ZMK|
AED|AUD|BHD|ILS|JOD|KWD|KZT|LBP|NZD|OMR|QAR|SAR|TND|UZS|YER
)$/x', $pu)) {
$pl= strtolower ($p);
if ($x= simplexml_load_file ("http://xxxxx/$pl.xml", null, LIBXML_NOCDATA)) {
if (preg_match ("/(\d+)\.(\d+)\s*$pu/", (string) $x->channel->item->description, $currency)) {
header ('Content-type: text/plain');
header ('Cache-Control: no-cache, must-revalidate');
echo "$currency[1],$currency[2]"; //Excel braucht Komma statt Punkt
exit;
}
}
}
}
header ('HTTP/1.1 204 No Content', true, 204);