2010-11-18 55 views
4

我有一個C#應用程序(.net 1.1)和使用Excel Interop來顯示一些reoprts。事實證明,當打開Excel工作簿時,XLSTART中的文件不會被讀取,就好像/自動化命令行開關已經運行一樣。Excel XLSTART問題與C#/。網

從C#啓動XLS工作表時,有什麼辦法可以啓用XLSTART嗎?

回答

0

因爲它使用interop,所以它將Excel作爲自動化服務器打開。這與使用/自動化開關是一樣的。當以這種方式打開Excel時,所有自動打開的文件和自動運行的宏都被禁用。

2

此行爲是設計使然。您可以加載在XLSTART加載項文件夾自己作爲微軟描述:

Add-ins do not load when using the CreateObject command in Excel

,你必須是Excel中使用Process.Start,然後從一個自動化對象,開始另一種選擇通過調用AccessibleObjectFromWindow函數運行實例。

示例代碼如何在C#或VB這樣做可以在相關的問題上找到:

How to use use late binding to get excel instance?

請注意,您不必使用作爲後期綁定在給出的例子中。像這樣修改樣本會給你一個強類型的Excel.Application對象:

Excel.Application xlApp = ptr.GetType().InvokeMember("Application", 
    BindingFlags.GetProperty, null, ptr, null);