-1

Ubuntu で Excel / Office ライブラリを使用する方法はありますか?

Excel スプレッドシートといくつかの VB マクロを結合する C# プログラムを開発しました。以下を使用します。

Excel および Office ライブラリ: Microsoft.Vbe.Interop.dll Microsoft.Office.Interop.Excel.dll および Office.dll。Windows では問題なく動作しますが、Mono 3.2 を使用して Ubuntu で実行することはできません。

実行しようとすると (gacutil -l XXXX.dll を使用して明示的にインポートしたライブラリを追加した後)、出力は次のようになります。

[ERROR] FATAL UNHANDLED EXCEPTION: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: ole32.dll
  at (wrapper managed-to-native) System.__ComObject:CoCreateInstance (System.Guid,intptr,uint,System.Guid,intptr&)
  at System.__ComObject.Initialize (System.Type t) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.__ComObject:Initialize (System.Type)
  at Mono.Interop.ComInteropProxy.CreateProxy (System.Type t) [0x00000] in <filename unknown>:0 
  at System.Runtime.Remoting.RemotingServices.CreateClientProxyForComInterop (System.Type type) [0x00000] in <filename unknown>:0 
  at System.Runtime.Remoting.Activation.ActivationServices.CreateProxyForType (System.Type type) [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 
  at MyProgram.Program.joinMacroAndExcel () [0x00000] in <filename unknown>:0 
  at MyProgram.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

どんな助けや方向性も高く評価されます。前もって感謝します。

ジョシュ

4

1 に答える 1

0

Excel / Office 統合ライブラリを実行するには、Office が既にインストールされている必要があります。PIA (Microsoft.Office.Interop.Excel.dll など) をコピーするだけでは不十分です。PIA は、Excel によって公開された COM レイヤーへのブリッジとして機能するためです。アル。COM レイヤーがなければ、要求している作業を実行することはできません。

于 2013-09-11T07:56:47.753 に答える