[英]Exclude office.interop if MS office not installed
我的問題是我的程序在運行時由沒有安裝辦公室的計算機打開時崩潰。
我正在編寫一個程序,由不同計算機上的多個用戶運行。 一些用戶計算機將安裝MS Office,其他用戶則不會。 它是一個多表單程序,為了便於參考,可以將其視為ERP類型的軟件。
我在程序引用中包含了Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Outlook。 我的應用程序中的某些子表單同時使用excel和outlook功能,但許多子表單都沒有。
我希望安裝了辦公室和沒有辦公室的用戶都能夠運行該程序。 也許如果他們沒有安裝辦公室,他們會收到一個錯誤,說明如果他們點擊一個通常會導出excel數據電子表格的按鈕就不會。
有沒有辦法實現這個目標?
我想避免第三方圖書館,因為在這些工作站上不需要在所有計算機上安裝辦公室,我還想管理一個程序而沒有兩個單獨的程序來管理哪些程序可以共享表單和功能。
提到的限制 - 沒有第三方庫,某些用戶計算機上沒有辦公室,也沒有2個版本的程序//將Excel文件作為數據源讀入程序並以這種方式處理數據。 對於您提到“導出Excel電子表格”的位置,您可以使用ODF / ODS。
我設置了一個新表單並測試了我的應用程序中的具體內容導致程序崩潰。 我發現包括辦公室參考不會引起問題。 還using Microrosoft.Office.Interop.Excel;
添加using Microrosoft.Office.Interop.Excel;
不會導致問題。
但是我在我的主程序中調用了一個類,它創建了Excel應用程序,工作簿和工作表,盡管實際上沒有在程序加載時使用這些項目。 類中可能導致問題的局部變量的示例是private Excel.Application XLApp = new Excel.Application();
。
在允許用戶運行可能導致程序崩潰的任何內容之前,我可能會使用像@Jcl建議的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.