2011-08-02 50 views
4

Excelの自動化を実行するWebアプリケーションを使用しています。Excel Automation Workbooks.Openが失敗しました:「開いているプロパティを取得できません」

私は開発プラットフォームとしてExcel 2007を使用していますが、ターゲットサーバはExcel 2003を使用しています。開発中にExcel 11を明示的に選択したにもかかわらず、Excel 12 interopをターゲットサーバにロードしようとすると、私は早い拘束より遅い拘束を使用することに頼っています。

これにより、私はExcelをインスタンス化することができました(そして、ターゲットサーバ上のタスクマネージャでExcelプロセスの開始がわかります)。

ただし、後でバインドされたWorkbooksオブジェクトのOpenメソッドを呼び出すことができません。それは私に、このエラーがスローされます。

"Unable to get the Open property of the Workbooks class" 

私はいくつかの異なるものを試してされていると次のことを試してみました:

  • は、遅延バインディングのVBScript(例えばA vbsファイルを使用して同じWorkbooks.Open通話を試してみてくださいファイル)。
  • 遅延バインディングVBAコード(Excelなど)を使用して同じWorkbooks.Open呼び出しを試してください。
  • Windowsフォームアプリケーションでレイトバインディング.NETコードを使用して同じWorkbooks.Open呼び出しを試してください。
  • Excelオートメーションは、すべてで成功します。このエラーが発生するのはASP.NETアプリケーションをデプロイするときだけです。非常に単純化した形で、コードは次のようになります。

    Dim xlApp As Object 'Excel.Application 
    Dim xlBook As Object ' Excel.Workbook 
    xlApp = CreateObject("Excel.Application") 'New Excel.Application 
    xlBook = xlApp.Workbooks.Open("somefile.xls", , True, , , , , , , , , , , , False) 
    

    誰もが起きているかもしれないものについての任意のアイデアを持っていますか?私は、Excelプロセスが起動したことをユーザーに確認し、Windows Forms .NETアプリケーションを正常に実行したユーザーと同じユーザーであることを確認しました。私はすでにこのユーザーとしてExcelを開いて、初期設定のすべてをクリアしていました。

    +0

    (...名前を付けて保存、閉じる、など)ここでは、同じ問題のファイル上で動作し、すべての機能を使用してエラーを処理するようにしてください、私は、Excelへのアクセスにscriptomを使用して、Groovyでスクリプトを持っていますcomオブジェクトの場合、コマンドラインから実行すると動作します。私のWebサーバー上のPHPエンジンから起動されると、そのエラーで失敗します。 –

    答えて

    2

    私はこの同じ問題を抱えており、次のようなサイトを見つけました:ファイルに行く - オプション - アドイン - 管理ドロップダウンのアドインを選択 - そこにあるものを有効にしてください。

    私にとってはうまくいかなかったが、それはあなたのためかもしれない。

    1

    後半答えベターその後... VBScriptを開発

    は、あなたが正しくあなたのエクセルブックを閉じる妨げるエラーを処理することを確認したことがありません。

    あなたと同じエラーが発生しましたが、私のロジック内でエラーが発生すると、インタプリタはExcelブックを閉じずに処理できなくなることを発見しました。

    Dim XLWkbk 'Excel workbook 
    Set xlApp = CreateObject("excel.application") 
    
    On Error Resume Next 
    Set XLWkbk = xlApp.Workbooks.Open("somefile.xlsm") 
    If Err.Number <> 0 Then ' Catch your error 
        WScript.Echo "Error while opening: " & Err.Number & " " & Err.Description 
        XLWkbk.Close False ' Close your workbook. 
        xlApp.Quit ' Quit the excel program. 
        WScript.Quit 
        Err.Clear 
    End If 
    WScript.Echo "Opened" 
    

    関連する問題