我與它採用的Microsoft Office互操作允許你完全編程方式使用Microsoft Word,Excel和PowerPoint C#程序的工作。的Microsoft Office互操作超時
一個不幸的方面我遇到的是,有時,該計劃將提高其暫停碼的對話框。例如,如果代碼突然無法保存在您所期望的位置,這意味着您的整個程序可能會暫停,即使稍後會修復該問題也是如此。
有很多,其中一個額外的對話框可能引發的其他情形。
所以我的目的是實現某種超時機制對於這一點,因此我可以殺了互操作實例,而不是有我的整個程序捆綁起來。任何人都可以建議一種方法來做到這一點目前它在Interop呼叫中包裝System.Action
,並在給定時間後中止該線程,但我想知道是否有更好的方法。
我已經在過去做過這樣的東西。唯一要做的事情就是讀取你正在自動化的VBA代碼,並對其進行測試,以便知道對話框出現的時間和地點,以及爲什麼。然後你可以編程。相信我,從長遠來看,這會讓你的生活更輕鬆! – JMK
此外,Office Interop並非設計爲無人值守使用,其理念是您的最終用戶可以看到這些對話框並與其進行適當的交互。如果你想要無人值守的辦公自動化,你可以看看OpenXML。 – JMK