我正在與SL 5.0
合作,並意識到我需要與Excel library from Office
合作。應用程序用途適用於許多可以安裝或不能安裝Office的計算機。是否可以在Silverlight中讀取excel文件?
我很擔心我該如何處理這種情況。我在本地參考了Interop library
進行測試,但是當我部署該項目時,我可以想象它不會在每臺計算機上工作,對吧?
我正在與SL 5.0
合作,並意識到我需要與Excel library from Office
合作。應用程序用途適用於許多可以安裝或不能安裝Office的計算機。是否可以在Silverlight中讀取excel文件?
我很擔心我該如何處理這種情況。我在本地參考了Interop library
進行測試,但是當我部署該項目時,我可以想象它不會在每臺計算機上工作,對吧?
互操作庫只是一個調用Office COM對象的包裝器,如果用戶沒有安裝Office,用戶將不會擁有這些對象。因此,您的應用程序只能在已安裝Office的計算機上運行。
你想要的東西像this project on CodePlex
ExcelLite是C#/ Silverlight的庫,可以讀取和寫入MS Excel的Silverlight應用程序(的Excel 97-2003)文件,而不COM互動。您可以在客戶端完全操作MS Excel文件,因爲此庫使用Binary Excel格式來讀取和寫入數據。
看起來它不需要安裝Excel就可以工作,但它只出現在操縱Excel 2003文件,所以如果你生成Excel 2007或更新的文件,這可能不是解決方案您。
我與這個特定的圖書館無關。
可能還有很多其他庫都在做類似的工作。你只需要做一些搜索和驗證,他們做你想要的工作。
如果您使用的是更新的格式,您可能需要嘗試http://excellite.codeplex.com/(如果您支持舊格式)或http://silverlightexcel.codeplex.com/。
你是對的,如果客戶端不一定有excel com對象,你的interop調用將會失敗。你很可能需要使用一個可以管理格式的客戶端庫(就像上面提到的那樣 - 也有第三方庫可能會變得昂貴)。另一個退步是做csv或txt。
如果客戶端機器沒有Excel ...用戶體驗會是什麼樣子?
是的,它不會工作,你需要手動註冊所有的COM DLL與Excel的相關。