2011-09-13 10 views
0

関数を持つxllファイルがあり、その関数をC#から呼び出す必要があります。 このxllファイルはexcel.any bodyでどのように使用されているのか考えていますか?xllファイルをリフレッシュしようとしましたが、値を取得しません。起動時にExcel - > programms - > excelと 私は直接関数を与える場合、私は正しい値を得ています。私はC#でExcelを自動化し、Microsoft.Office.Interop.ExcelからExcelを開いて、エラーが発生している関数を適用しましたCLLのXLLファイルの関数を呼び出す

答えて

0

あなたはおそらくされませんXLLがExcelインターフェイスの駆動を期待するため、直接関数を呼び出すことができます。あなたは深刻な偽造をしなければならないでしょう。

これをExcelで自動化することはできます。

+0

デビッドのおかげで、私はエクセルの相互運用機能を使用してExcelによって自動化oRng.Formula = "= getnumber( 'abcd'、 'IQ_COMPANY_ID')"のようにxllで数式を適用します。私はCOMの例外エラーを取得しています。どのようにxllを有効にしてExcelを開くためにどのようなアイデアを持っています。 – user933316

+0

私は分かりません。私はXLLやあなたの運転方法について何も知らない。 –

0

xllは単なるdllです。呼び出す機能の署名が分かっている場合は、他の機能と同様に呼び出すことができます。署名がわからないが、Excelでアドインを読み込むことができる場合は、Excelに署名を伝える方法があります。

オートメーションは、Excelを実行している場合にのみ機能します。署名を知っている必要はありません。

0

あなたが使用できるいくつかのツールがあります:

の場合:

XLL Plus
XLL Host


は疑問もこれが答えです、MSDN Use XLL from C#に頼まれましたCOMプロジェクトですが、[参照の追加]ウィンドウの[COM]タブから追加できます。

あなたはDLLから.NETアセンブリを作成する必要がある場合は、DLLのラッパーを作成するために、タイプライブラリのインポートツールを使用しようとすることができます:

tlbimp.exe xll.dll /out:xllnet.dll 

オブジェクトがない場合COMをサポートしますが、ネイティブコールのみを使用する場合は、DllImport属性を使用してメソッドをプラットフォームで呼び出す必要があります。詳細については、Platform Invokeチュートリアルを参照してください。


私はすべての3つの提案に行くを与えたが、任意の運を持っていませんでした。 XLLツールExcel-DNAの著者を考えると、私はWinフォーム/ WPF /コンソールまたはWebアプリでXLLを消費することは些細なことではない疑いがあるツールを使用することをお勧めします:info.IFため https://stackoverflow.com/a/2865023/495455

関連する問題