我開發了一個將數據導入Microsoft Excel的應用程序。使用VS2005 + .NET 2.0和Microsoft Office 2007.NET Office interop使用版本獨立的辦公室
AM是安裝在我的機器(辦公室12)上。
的編譯的應用程序工作正常,如果我在我的機器上運行它,但當我將應用程序部署到其他機器說,那些使用較低版本(Office 2000的),我得到的錯誤:
無法加載文件或大會的Microsoft.Office.Interop.Excel,版本12.0.0.0
我怎麼會那麼讓我的應用程序正確執行,無論安裝在計算機上的Office(Excel)中的?
謝謝。
一些更新: 我把引用的兩個DLL,即Microsoft.Office.Interop.Excel.dll(版本12.0.0.0)和Office.dll(版本12.0.0.0)在我的bin文件夾。我已經將此引用的屬性設置爲Copy Local = True,並且當我編譯我的應用程序時,這些DLL被複制到debug/release文件夾中。
現在,當我嘗試運行應用程序時,我已經下了錯誤的: 「無法加載文件或程序的Microsoft.Office.Interop.Excel,版本12.0.0.0」
但另一個錯誤來到這是: System.AccessViolationException:試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞。 (對象文件名,對象文件格式,對象密碼,對象WriteResPassword,對象ReadOnlyRecommended,對象CreateBackup,XlSaveAsAccessMode AccessMode,對象ConflictResolution,對象AddToMru,對象TextCodepage,對象TextVisualLayout,對象本地)
所以,實際上,我怎麼創造條件,能夠在數據表中的數據導出安裝到Excel不管Office版本的應用程序?
謝謝。
我試過用你的Office Wrapper,它在Office 2007中工作正常。我在Office 2000中沒有測試過。 我遇到的一個問題是應用程序創建過程似乎駐留在內存中。即使我調用了MSExcel.Application.CreateApplication.Quit(),仍然會收到一條消息,提示您「您是否想要將更改保存到Book1?」當我關閉/註銷我的機器時。 任何進一步的建議高度讚賞。謝謝。 – Batuta 2009-08-14 01:03:17
設置屬性「Application.Interactive = false」。那麼應該禁止所有的用戶輸入。 有關物業的更多信息:http://msdn.microsoft.com/en-us/library/bb177670.aspx – TcKs 2009-08-14 08:54:19