New-WebServiceProxy による気象情報の取得

by manamana 27. June 2013 12:30

VBAでは構築が困難な例として、Webとの連携が挙げられます。
その点、PowerShell は .Net の資産を有効に使えるので Web から簡単に情報を取得出来ます。

New-WebServiceProxy

このコマンドレットは、 任意のWebサービスに接続して情報をXML形式で受け取ります。
後はそれを好きに加工して表示してやればいろいろ面白いことが出来るわけです。

気象情報でも取得しよう! と思った所、先人が居られました。とても参考になります。

PowerShellでGlobalWeatherから天気情報取得してみる

ここでは、例によって Excel PowerShell Tool で動かすようにします。
予め、観測地点の一覧をテーブル化し、リストから選択するという Excel っぽい感じです。

 

ソースです。Cellに直接データを入れています。もう力技ですねww

#@PSTOOL

$ws = $_Excel.Activesheet
$addin = $_Excel.ComAddins.Item("ExPSTool").Object

$city = $ws.Range("WeatherInfoCity").Value2
$web = New-WebServiceProxy -uri http://www.webservicex.net/globalweather.asmx
[xml]$xml = $web.GetWeather($city, "Japan")
$CurrentWeather = $xml.CurrentWeather

$rg = $ws.Range("WeatherInfo")
$rg.Cells.Item(1, 1).Value2 = $CurrentWeather.Time
$rg.Cells.Item(2, 1).Value2 = $CurrentWeather.Wind
$rg.Cells.Item(3, 1).Value2 = $CurrentWeather.SkyConditions
$rg.Cells.Item(4, 1).Value2 = $CurrentWeather.Temperature
$rg.Cells.Item(5, 1).Value2 = $CurrentWeather.RelativeHumidity
$rg.Cells.Item(6, 1).Value2 = $CurrentWeather.Pressure

 

東京を選んでみました。

 

次は普天間基地です。30℃超えてますね…

 

 

PowerShellで Excel を操作すると、反応が異様に遅いです。表示が目で追えるレベルです。
今回のようにデータ数が少なければ良いのですが、大量のデータを PowerShell 経由で Excel に出力するには
それなりの工夫が必要になります。この辺はまたの機会に…

ダウンロード↓↓↓ 
お天気.xlsx (17.19 kb)

 

Tags:

PowerShell

Add comment


スポンサーリンク

Calendar

<<  November 2019  >>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar

Month List

Twitter