2010-10-21 38 views
1

我需要在我們的WinForms應用程序中託管Excel電子表格。它看起來加載的Excel文件到WebBrowser控件是要走的路。網上有幾篇關於這方面的文章。但是,他們大多使用Excel 2003(我猜)。 Excel 2007提出了一些新問題:將Excel 2007文件加載到C#中的WebBrowser控件的問題?

  1. 默認情況下,Excel電子表格在新窗口中打開,而不是嵌入到WebBrowser控件中。基於微軟,這是通過設計,但它也建議通過更改註冊表設置修復。這不是很好,但我可以忍受這一點。

  2. 通過該註冊表更改,我能夠將Excel電子表格嵌入到WebBrowser控件中。但是,Excel工作簿仍然在後臺打開 - 我甚至無法關閉,但在我的WinForm應用程序關閉時會自動關閉。當您觀察電子表格如何加載時,它很有趣:它首先加載到Excel工作簿中(後臺),然後轉移到我的WebBrowser控件中。我怎樣才能擺脫(或隱藏)這個背景窗口? 編輯:其實,Excel窗口沒有關閉,但放入背景。但是,在CodeProject的this article的幫助下,它可以被關閉。在那篇文章中,當WinApp關閉時,Excel窗口關閉。但是可以使用相同的函數關閉WebBrowser的DocumentCompleted事件上的窗口。這並不完美,因爲你仍然看到屏幕閃爍,但沒關係。我希望有更好的方法來做到這一點。爲了避免屏幕閃爍,我試圖儘量減少Excel窗口。但是,當我嘗試將WindowState設置爲最小化時,它會引發COM異常。任何線索?如果我可以從開始隱藏這個禁用的窗口,這將是一個更好的解決方法。

  3. 當您第一次打開電子表格時,會彈出一個messgebox,要求您提供「打開」,「保存」和「取消」選項。有一個複選框可以禁用它。但我不想讓這個消息箱出現。這是什麼註冊表設置?

  4. 在我的電子表格中,有一個應該動態加載的加載項組件。但是,將其加載到WebBrowser不起作用(它找不到它)。如果我使加載項處於活動狀態,則加載沒有問題。 WebBrowser上是否有任何更改以使其正常工作?

在WinForms應用程序中託管Excel電子表格有更好的選擇嗎?

+0

嗨米柳我有同樣的問題,你有沒有找到更好的方式來嵌入xls文件? – 2011-05-26 17:18:10

回答

0

如果您可以控制用戶以及他們正在使用的辦公室版本,則可以右鍵單擊Visual Studio中的菜單並將相應的Excel控件添加到工具箱。您也許可以通過檢查註冊表和錯誤處理來動態加載控件(由於每個控件的細微差別,這可能會有更多的工作)。

+0

感謝您的快速響應。不幸的是,這似乎並不適合我。 – newman 2010-10-21 19:53:35

相關問題