加载中…
个人资料
数据化分析
数据化分析
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,147
  • 关注人气:1,283
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel通过API接口批量获取天气记录【附教程】

(2012-03-25 22:28:50)
标签:

数据化分析

excel

api

天气

杂谈

分类: 02-数据分析工具

    (文/@数据化分析

  2012年3月22日,发了一条关于Excel通过API接口批量获取天气记录的微博,现在博客上做个总结,并对此文件的实现方法做个简要教程供大家学习参考。微博内容如下:

利用Excel快速批量获取并保存城市天气记录,如果不选择省市,则获取全国所有城市的天气信息,保存好以后能够方便地对历史天气情况进行跟踪分析等应用,数据来源于新浪天气API接口。查看大图看动画效果。通过@微盘分享文件"批量获取城市天气记录.rar" http://t.cn/zOiXggN

http://ww3/large/9bed162bjw1dr8q68vu7fg.gif&690

有很多网友希望学习Excel通过API接口获取网页即时数据的方法,比如刘万祥ExcelPro从web获取实时数据,制作自动报告,将是excel的新用法,值得学习!期待教程~~

下面就简要介绍一下此文件的制作方法。

使用Alt+F11可以看到此文件的所有VBA源代码,在模块中有两个Sub过程:get_xmldoc(city, xmldoc)和get_today_weather(),分别用于从网页获取指定城市的天气信息和获取今日天气。

首先看如何从网页获取指定城市的天气信息,get_xmldoc(city, xmldoc)有两个参数:city是输入参数、xmldoc是输出参数,用CreateObject("Msxml2.XMLHTTP")创建对象,从http://php.weather.sina.com.cn/xml.php网站上获取天气信息,由于.responseText是文本,故采用.LoadXML来将其转换为方便调用的XML格式(原计划用.responseXML直接返回XML,但调试没有成功获取所需的信息,可能是网站格式的原因吧)。

再看如何获取今日天气,get_today_weather()的代码中有很多注释,比较简单易懂,关键是调用前面介绍过的get_xmldoc(city, xmldoc)来获取XML格式信息后,通过SelectNodes的方法来输出到Excel相应单元格中。

文件中的两个下拉框实现了联动查询,选择任意省份后,会自动选中相应的省会城市,其实现方法请参看ComboBox1_Change()中的代码。如果将其中的ComboBox2.ListIndex = 1修改为ComboBox2.ListIndex = 0,那么选择任意省份后,就不会自动选中省会城市,但第二个下拉列表中的城市仍相应地发生了变化,此时点击“获取今日天气”按钮则获取所选择省份中的所有城市的天气信息。文件在打开时默认选择北京,这点也可以通过修改Workbook_Open()中的代码来改变规则。

关于此文件暂时就先介绍到这里,有些网友提了一些非常好的建议和想法,比如沈浩老师:“既然已经有了API数据接口,一定要变成地图形式展现,最好象CCTV的天气预报一样”。后续将对它做一些改进,包括用数据地图的展现形式、结合系统任务计划实现定时自动查询保存、查询明后天的天气等,当天气信息积累到足够多之后,还可以考虑做成动态气泡图,敬请关注!

【后续更新】

2012年3月26日,Excel应用更新:1、用数据地图的形式动态展现通过API获取的天气记录,下拉菜单选择日期,天气用图标显示,气温以热力地图显示;2、能够获取明后天的天气预报。查看大图看动画。通过@微盘 分享文件"通过API批量获取天气记录V2.0.rar" http://t.cn/zOXLyrE
http://ww4/large/9bed162bjw1drdcjaxf5ag.gif&690

新浪爱问共享资料下载: http://ishare.iask.sina.com.cn/f/23821126.html 

2012年4月5日,通过@微盘 分享文件"通过API批量获取天气记录【有进度条可暂停版】.xlsm",请查看大图看动画,欢迎转发推荐分享! http://t.cn/zOKqv6l
http://ww1/large/9bed162bjw1dron6dmhweg.gif&690

欢迎评论和转载,转载请注明来源于@数据化分析 的博客:http://blog.sina.com.cn/data2analysis,除非特别声明,本站采用许可:署名,非商业。多谢支持! 

 

2012.3.25

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有