.

Excel也能天气预报如何通过Exce

Excel获取天气数据--示例演示

这两天朋友跟我说了个工作需求,他们做服装行业,需要根据天气数据,有针对性地安排备货并在店铺对顾客进行穿戴搭配推荐。要求使用Excel直接请求并获取数据,然后进行数据整理,并输出为表单。

刚开始,我是考虑通过类似高德开放平台之类的接口进行处理,但是浏览一下发现,高德的天气数据,只能到地市级,不满足朋友要求天气数据精确到区县级的需求,只能放弃。

看来天气源是个问题。通过网络,我查找了多个天气源,但是基本上找到的,不是需要收费,就是无法提供合适的数据。直到我遇到了[中国天气]

中国天气网站

你以为,我是直接访问网页,然后在网页的元素内,筛选出天气数据,然后填充吗?

不是的。这样的话,只要其页面内容做一点修改,可能就没办法使用了。

其实[中国天气]这个站点,除了正常的网页可以访问天气信息外,还提供了XML数据访问接口。

XML天气数据

如上图,直接在浏览器访问,就可以查看全国省会城市的当天的天气信息。

所以,我们可以直接访问这个接口,解析XML文件,即可使用Excel实现获取天气数据的功能。

----------------------------------------------------------------------------

开工!

打开Excel,我用的是的版本,大家有兴趣的,可以自己尝试,各个版本应该都是可以的。

启用[开发工具],插入3个组合框Active控件,用于填充三级行政区划信息供操作者选择。

按ALT+F11组合键,调出VBA代码界面,首先定义省级信息(需要做哪些省的,直接定义好)。

省级信息组合框代码

写一个组合框下拉选择的事件,让其可以根据省份名称,获取该省份下属的所有地级市信息。

省级信息组合框下拉动作代码

写一个函数,实现地级市名称的获取功能。

地级市名称信息获取代码

在上面,我们通过VBA的XMLHTTP接口,对中国天气的XML接口进行了访问,并对返回的数据,进行了解析返回,填充到了组合框2。

此时,我们可以看到,组合框2已经可以看到地级市信息了。

那你可能要问了,为什么重庆要单独处理?

那是因为,重庆市是直辖市,下面直接对应了区县,而普通的省,是省-市-县的三级划分管辖关系。所以,我参考部分网站的处理方式,也处理为3级架构,这样操作习惯上兼容性更好一些。

当我们拿到了地级市信息后,就可以开始下一步:获取区县名称信息和当天天气信息了。

获取的方式,与上一步其实是一样的,同一个接口,仅仅需要将省的名称,更替为地级市的名称。

值得


转载请注明:http://www.abachildren.com/xgyy/2838.html