WinForm 內嵌 Office 文檔 解決方案測試(非DSOFRAME 純C#代碼,網上獨一份)


以前項目有需求在網頁中嵌入Word文檔,網上有很多這樣的ActiveX控件,但都是商業的,授權要幾萬。

其他的解決方案:

1.利用WebBrowser打開Office文件,但微軟在一個補丁中將其默認設為關閉,想要使用得更改注冊表,並且很多東西不可控。

2.利用微軟已經不再支持的一個示例 DsoFramer_KB311765_x86.exe,網上絕大多數此類控件是基於此的,但微軟已經將其移除網站,

  不再提供更新與支持,而且源代碼使用的是C++ 用 WIN32 SDK 寫的,沒有利用ATL庫,本人C++不行,沒看懂。

3. Word文檔轉成HTML相關頁面直接展示。

 

以上三種除了第2種會C++的能利用外別的對我都不行,偉大的google告訴我微軟在.Net Framework 2.0 beta 1 時代曾提供一個控件 ActiveDocumentHost,

即活動文檔宿主,可以打開任何OLE文檔類型,無奈的是不知道什么原因微軟在正式發布時放棄了此控件,但至今在各個版本的System.Windows.Forms.dll程序集的

資源里還有System.Windows.Forms.ActiveDocumentHost.bmp這個圖標,我知道了,微軟很壞,讓我看得見用不着。。。。

經過很久的Google后,終於下載到 dotnetfx_2.0_Beta_1(2.0.40607.42)2004-07-27 這個版本的 Framework,反編譯之,提取出ActiveDocumentHost控件重新編譯。

於是就有了現在的WinForm 內嵌 Office 文檔解決方案。

注意:提取完畢后編譯無錯,基本測試正常運行,但有版權問題,並且需要雙擊或單擊或獲得焦點后才能編輯,很痛苦,正在解決。

之后將會將其寫成ActiveX以便在IE中用。

如果有哪位大大能修改它希望給一份代碼,謝謝!

實現的基本原理就是實現一個活動文檔容器。

代碼下載地址:http://files.cnblogs.com/binsys/LabsB.Controls.7z


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM