可以說我打開了一個名爲「DataSheet.xls」的Excel文件。我怎樣才能殺死使用C#的Excel文件?在Excel中以編程方式關閉工作簿
回答
using Excel = Microsoft.Office.Interop.Excel;
(...)
var app = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
// I have english excel, but another culture and need to use english culture to use excel calls...
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
app.Workbooks["DataSheet"].Close(false, false, false);
off off沒有這樣的代碼。但通常情況下,過去我會用一些API調用來做到這一點。首先,您將獲得窗口句柄(hWnd),然後使用帶wm_close參數的sendmessage api調用。
這就是所有我能記住 - 它一直約10歲,因爲我不得不做這有點兒東西,所以從那時起:)
非常感謝您的幫助。 – Rabin 2010-06-16 09:06:57
的Process
類將允許你去殺死一個過程領域可能已經改變。您可以檢查所有正在運行的excel.exe進程,獲取進程的主窗口句柄,檢查該窗口的標題是否包含XLS文件的名稱,然後終止該窗口的進程。
否則,您可以使用Office COM類與Excel交談。這也可能允許您關閉打開的工作簿。
非常感謝您的幫助。 – Rabin 2010-06-16 08:46:14
單個進程很可能包含多個打開的工作簿。特別是因爲Excel在從資源管理器,Outlook等打開文件時更喜歡重新使用現有實例,而不是爲每個工作簿創建新的進程。
更不用說殺死進程將要求您1)關閉主窗口,這將提示是否存在未保存的更改或2)強行終止進程,這可能會導致Excel在下次您顯示其崩潰恢復選項時啓動它。
最好的方法是使用Excel COM API關閉工作簿。您可以使用Marshal.GetActiveObject方法獲取正在運行的Excel實例,然後參閱Office開發人員參考,以獲取有關如何在不提示的情況下關閉特定命名工作簿的更多信息。
非常感謝您的幫助。 – Rabin 2010-06-16 08:37:08
- 1. VBA不會關閉以編程方式打開的工作簿
- 2. 以編程方式在Excel中隱藏活動工作簿
- 3. COMException關閉Excel工作簿
- 4. 以編程方式從VSTO Excel工作簿中讀取_AssemblyLocation
- 5. 以編程方式重置excel工作簿密碼使用c#
- 6. Excel Interop不會以編程方式註冊我的工作簿
- 7. Excel - 關閉工作簿的計時器
- 8. 以編程方式在工作簿中更改鏈接
- 9. 以讀寫方式打開工作簿並關閉時保存
- 10. 以編程方式將Xml數據注入到Excel 2007工作簿中
- 11. 如何以編程方式關閉TFS工作項目
- 12. 通過ADO寫入/更新數據以關閉Excel工作簿
- 13. 使用INDIRECT在已關閉的Excel工作簿中引用值?
- 14. 在宏中使用Excel VBA關閉活動工作簿
- 15. 防止工作簿關閉
- 16. 防止關閉工作簿
- 17. 如何完全關閉Excel應用程序/工作簿?
- 18. 使用VBA時,如何在不關閉所有工作簿的情況下關閉Excel工作簿?
- 19. Excel工作簿關閉但工作表保持活動?
- 20. 以編程方式關閉操作欄中的android:windowActionBarOverlay樣式
- 21. 使用軸和圖表以編程方式生成Excel工作簿
- 22. Excel工作簿打開宏重新打開關閉的工作簿
- 23. vba:我如何以編程方式以只讀方式打開工作簿?
- 24. 以編程方式關閉MenuStrip
- 25. 以編程方式關閉UIDocumentInteractionController OpenInMenu?
- 26. 以編程方式關閉選擇onorientationchange
- 27. 如何關閉McAfee以編程方式
- 28. 以編程方式關閉VoiceProcessingIO AGC
- 29. 如何以編程方式關閉UISearchBar?
- 30. 以編程方式關閉iOS
是否要殺死excel應用程序,excel.exe或只關閉工作簿datasheet.xls? – simendsjo 2010-06-16 07:21:04
我想僅關閉工作簿datasheet.xls – Rabin 2010-06-16 07:32:13