2009-09-09 30 views
0

我想知道如何做到這一點的最佳方式:在一個應用程序中的兩個版本的Excel?

我有一個應用程序可以與Excel DOM一起使用。用戶可能安裝了Excel 2003或2007,我不知道哪一個是先驗的。 Mine是一個C#控制檯應用程序。

如何讓我的應用程序兼容兩者?是否可以在運行時找到相應的版本並修改Using語句?例如,我似乎記得,要使用Excel 2003,我寫Using Microsoft.Excel,或只有Excel與相應的參考DLL,但對於2007年,我需要Using.interop.Excel或類似的東西...不是現在的點,但使得問題更清楚。此外,許多類型的Excel 2003都沒有明確定義(例如,series,例如ArraysObjetc),而在2007年,其中一些更強烈地「鍵入」等。

我會如果問題還不夠清楚,請高興編輯。

謝謝。

+0

如果您針對Excel 2003/2007運行您的代碼,這是否一樣? 如果不是,您希望如何將不兼容的功能與兼容的功能分開? – shahkalpesh 2009-09-09 16:47:11

回答

1

考慮使用,這是一個處理許多Office版本的包裝庫。

如果這不適用於您,請將代碼轉換爲您需要支持的最老版本的互操作程序集。對於一個項目,我在PC上安裝了當前版本,但是我支持在我用作構建機的虛擬機上安裝了最早的版本。在這種情況下,我必須小心使用舊API中可用的東西(否則編譯將在構建VM上失敗)。

0

我們試了一會兒纔得到一些針對Excel 2003和Excel 2007運行的COM Interop測試代碼,但最終決定僅支持Excel 2007,因爲API差異。

如果你確實需要同時支持,我的建議是有兩個版本的應用程序/庫。第一個將寫入Excel 2003,並構建在僅安裝了Excel 2003的計算機上。第二個將被寫入以支持Excel 2007,並構建在僅安裝了Excel 2007的計算機上。

您可能想嘗試,它支持.xls和.xlsx文件,並且將擺脫對Excel的任何依賴。您可以下載免費評估here

聲明:我自己的SpreadsheetGear LLC

相關問題