我正在創建可從數據庫數據生成Excel文件的Windows窗體應用程序。在將數據庫填充到文件中後,我打開它並執行一個宏,保存該文件然後關閉它(或者我認爲我正在關閉它)。這些文件保存在我的硬盤上,但是當生成所有文件時,我必須能夠生成一組新文件,因此我必須在生成新的硬盤之前從硬盤上刪除所有舊文件。運行應用程序一次後,我嘗試生成新的文件集,我得到一個錯誤,指出其中一個文件(第一批生成的最後一個文件)被另一個進程使用。創建並編輯後發佈Excel文件
這裏是我的代碼:
public void RemoveRows_Macro(string fileName)
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
xlWorkBook = xlApp.Workbooks.Open(fileName);
//xlApp.Visible = true;
xlApp.DisplayAlerts = true;
//Run the macro
xlApp.Run("RemoveRows", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlWorkBook.Save();
xlWorkBook.Close(false);
xlApp.Quit();
releaseObject(xlApp);
releaseObject(xlWorkBook);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
Console.WriteLine("Error in releasing object :" + ex);
obj = null;
}
finally
{
GC.Collect();
}
}
我在做什麼錯誤的,因爲應用程序未釋放的文件?
對不起,我輸錯了!即時嘗試它。 – Lahib 2013-03-19 08:20:52
編輯我的答案 – TalentTuner 2013-03-19 08:22:02
它的工作。我很感激幫助。謝謝 – Lahib 2013-03-19 08:28:21