2011-08-04 20 views
0

私はhtmlとexcelの奇妙な組み合わせで動作するワークフロープロセスを持っていますが、これはすでにここで作業していたときに完了していますので、ここでは処理を再開できません。 フロー、HTMLファイルが電子メールで送信されますが、このファイルにはアクティブなxが含まれており、自動的にいくつかのパラメータでExcelが開きますが、すべてがパラメータで構築されているように見えますが、Excelのパスはハードコードされ、誰もがExcel 2003を使用していたので、ほとんどすべての人が同じイメージを持っていたので、パスは同じでしたが、今では一部のユーザー(トップ管理者)がオフィス2010に移行します。したがって、アクティブなxを入力すると、htmlファイルが正しいExcelバージョンを開きます。htmlファイルまたはアクティブxからExcelバージョンを自動的に検出する方法はありますか?

アイデア?

ありがとうございます!

EDIT これは私が使用するものです。

<script language="JavaScript"> 

function LoadVendor() 
{ 
var vendor = document.getElementById("vendor").value; 
document.getElementById("vend").innerHTML=vendor; 

var BIDnum = document.getElementById("BIDnumber").value; 
document.getElementById("BIDnum").innerHTML=BIDnum; 
} 

function openExcelDocPath() 
{ 
var shell = new ActiveXObject("WScript.Shell"); 
var excelexe = document.getElementById("excelexe").value; 
var excelprg = document.getElementById("excelprg").value; 
var vendor = document.getElementById("vendor").value; 
document.getElementById("vend").innerHTML=vendor; 

shell.run("\"" + excelexe + "\"" + excelprg , 1, false); 

try{objExcel.comaddins("SAS.OIBootStrap.Connect").connect = "False"; } 
    catch(err) 
    { } 
} 

</script> 
+0

あなたの起動は、その物理的なパスから優れているのですか?あなたはそのバージョンに依存しない自動化に変更できませんか?excel.application progid? –

+0

はい物理パスからExcelアプリケーションを起動しますが、現在は次のようにハードコードされています: – isJustMe

+0

C:\\ Program Files \\ Microsoft Office \\ Office10 \\ EXCEL.EXE – isJustMe

答えて

1

私は何をお使いの後には100%ではないですが、あなたは完全に物理パスをドロップすることができ、

var Excel = new ActiveXObject("excel.application"); 
Excel.Visible = true; 
Excel.Workbooks.Add(); //to keep resident if you want interactivity 
//can open something here ... 

//or just get the path/version 
alert(Excel.version); 
alert(Excel.path); 

//to kill 
//Excel.Quit(); 
//Excel = null; 
+0

ありがとうAlex! – isJustMe

関連する問題