2017年1月26日木曜日

webサーバ上のExcelファイルなどを開く

WScript.ShellオブジェクトのRunメソッドなどに「http://~~/sample.xlsx」などのアドレスを普通に渡すと、まずブラウザが起動して「ファイルを開く?保存する?」の問いかけメッセージが表示されます。


「開く」を選択するとファイルが開き、その前に開かれた空白のページは自動で閉じてくれるけど、、

ちょっとしたことだけど、煩わしいです。
まず問いかけを無くしたい。
そもそもブラウザを起動してほしくない。

……という要求を満たすアイデアを見つけました。


選択肢はいくつかあります。

A.ファイルに対して適切なコマンドでRunする。
例えばExcelファイルなら shell.run('excel http://~~/sample.xlsx') のようにすればOK。
しかしこれではコマンドが不明な拡張子などには対応できません。

B.assocコマンドとftypeコマンドを使って拡張子に対応する規定のコマンドを調べて、Runする。
これでどんな拡張子だろうと対応するコマンドで開ける!と思いきや、試しにやってみるとftypeの返り値は以下のようになります。

コマンドの形式がバラバラで、開きたいファイルのURLと組み合わせるのも難しいです。
そもそもコマンドが取得できない拡張子もあるようですし。。

C.一時フォルダにダウンロードして開く。
Runメソッドに渡すアドレスが「http://」から始まる文字列だからブラウザが起動してしまうのです。
ローカルエリア内のアドレスを渡せばファイルをダブルクリックして開く時と同じリアクションをしてくれます。


というわけでダウンロードして開くスクリプトは以下

用が済んだら後始末もしてくれます。

0 件のコメント:

コメントを投稿