我最近刚刚开始在 C# 中使用 Excel Interop,并且遇到了一个问题,如果我的应用程序崩溃,Excel 进程会持续存在。(为什么进程崩溃是我正在调查的一个单独问题。)
我想我正在正确释放 COM 对象,因为如果我的应用程序成功完成,一切都会清理干净。只有当它崩溃或我在调试过程中碰巧退出时,Excel 进程才会被保留。
当然,我意识到当它崩溃时,COM 对象没有被清除。我不知道如何处理这个。
这里有一些伪代码,希望能演示我在做什么(真正的代码很长。)
它应该 1) 打开现有的 excel 文件,2) 访问文件中的特定工作表,3) 插入很多行,4) 向这些行添加值,5) 关闭并保存所有内容。
我做错了什么?
// Open excel file
try {
myExcelApp = new Excel.Application();
myExcelApp.Visible = false;
myExcelApp.DisplayAlerts = false;
myExcelWorkbook = (Excel.Workbook)myExcelApp.Workbooks.Open(excelFile);
} catch (Exception ex) {
string msg = "Error:Failed opening Excel File " + excelFile + ": " + ex.Message;
throw new Exception(msg);
}
// ---- some other stuff here. ----
foreach ( var toolWorkSheetName in workSheetsList ){
// Init
Excel.Worksheet xlWorksheet = null;
Excel.Range xlRange = null;
// Get specific worksheet from workbook
try {
xlWorksheet = (Excel.Worksheet)myExcelWorkbook.Worksheets[toolWorkSheetName];
} catch (Exception ex) {
string msg = "Error:Could not open worksheet in " + toolWorkSheetName + ": " + ex.Message;
throw new Exception(msg);
}
HUX布斯
MMMHUHU
相关分类