2010-04-21 73 views
2

我知道這個問題之前已經發布......但我還沒有找到任何答案(除了關於XLL實際上是如何DLL等通用的答案)。 有沒有人從C#中調用XLL(使用DllImport),而無需使用作爲插件加載的XLL加載Excel?在Excel外部運行XLL?

基本上,您將不得不創建一個模擬Excel主機的特殊XLCALL32.DLL。聽起來像很多工作......有人做過這件事嗎?或者看到一個產品做到這一點?

感謝

+0

查看答案http://stackoverflow.com/questions/278025/calling-an-xll-from-unmanaged-c?rq=1 – 2012-11-19 14:07:13

+0

閱讀goverts答案 - XLL Plus是要走的路,如果錢是不是一個問題 - http://stackoverflow.com/questions/1940747/calling-excel-dll-xll-functions-from-c-sharp?rq=1 – quixver 2014-12-02 14:50:31

+0

PS這是很多工作。 Stubbing excel並不像聽起來那麼容易。 – quixver 2014-12-02 14:52:12

回答

0

你是在正確的軌道上需要創建自己的XLCall32.dll和模擬Excel中。考慮到您可以通過XLL用於與Excel交談的界面來做這件事,這是非常重要的。從您的XLL中需要使用的Excel越少越容易,所以我猜如果您有一個您需要使用的已知XLL選擇,並且您知道通過XLL接口訪問哪些Excel,那麼您可以替換你需要的位...

你爲什麼要這麼做?

+0

我有一段XLL,我寫了一段時間。我失去了源代碼。我很想能夠從c#中調用它的函數。 – Nestor 2010-04-21 18:08:35

+0

恕我直言,你會更容易重寫XLL的形式,你可以從C#調用比編寫替代XLCall32.dll和模擬Excel ...然後再次我猜這取決於你是多少使用Excel來完成你的工作,但我希望你能記住,所以你至少應該知道你需要模擬的Excel部分。然後就是加載xll的問題,將你的c#類型編組到相應的XLOPER並調用入口點... – 2010-04-21 20:11:22

0

評估這個XLL+庫(它不是免費的,運行在試用版atm上),它幫助「模擬」/「模擬」XLCALC32.dll調用(因爲它只需要2種方法)。如果我到達某個地方,會讓你知道。