やろうとしていることは、例えば「Excel出力」というボタンをクリック時に
①PHPでEXCEL出力処理を行い、サーバ上の所定のフォルダへ保存
②クライアント端末名を取得し、①のEXCELファイルをクライアントの所定のフォルダへコピー
(③更に可能ならそのExcelファイルがOPENされて最前面に表示された状態で処理終了)
という一連が実行されるようにしたいです。
※②でクライアントの所定のフォルダに置くのは、他システムとの連携の関係上意味があります。
ですが、クライアントサイドの言語をちゃんと勉強したことがないため、②以降がわかりません。
どのような方法がありますか?
(サンプルコードもいただけたらありがたいです)
いろいろググったりしては見ましたが、
ブラウザ上での端末名の取得にはJscriptやVBscriptの一部(取得部分のみ)が紹介されていたりして、どう使用してよいかわかりませんでした。
環境は、社内LAN環境で、Windows、使用ブラウザはie8固定、クライアント端末のドライブやフォルダ構成は同じです。
どうかよろしくお願いします。
Windowsのコンピュータ名の取得を意図しているなら、VBScriptで下記のように記述します。ブラウザはIE限定です。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <script language="VBScript"> <!-- Function getComputerName() Set objNetWork = CreateObject("WScript.Network") getComputerName = objNetWork.ComputerName Set objNetWork = Nothing End Function MsgBox getComputerName() --> </script> </body> </html>
サーバのフォルダをpath0、ファイル名をfname、クライアントのフォルダをpath1とします。
Function copyFile(path0, fname, path1) Set objWS = CreateObject("WScript.Shell"); cmd = "copy " & path0 & fname & " " & path1 objWS.run(cmd); End Function
以下のようにします。
Function runExcel(path1, fname) With CreateObject("Excel.Application") .Visible = True .Workbooks.Open (path1 & fname) End With End Function
ちなみにIE設定をいじらずに済む方法はご存じありませんか?
ありません。
2013/01/16 20:14:13要望を実現するにはActiveXを使う必要があり、このためIE限定です。そのIEのデフォルト設定ではセキュリティの関係上、スクリプトが実行できないようになっているため、手作業で解除してやる必要があります。
ありがとうございました。参考になりました。
2013/01/16 22:39:57