robat7
شنبه 15 آبان 1389, 16:36 عصر
سلام
وقتي در C# با برنامه Excel كار مي كنيم بستن برنامه Excel در Task Manager يكي از پر دردسرترين كارهاست كد زير را در بيشتر سايت ها مي توانيد پيدا كنيد ولي متاسفانه در بيشتر موارد درست كار نمي كند
oWB.Save();
oWB.Close(null, null, null);
oXL.Workbooks.Close();
oXL.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oXL);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oWB);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oSheet);
ولي با مجموعه كد زير برنامه excel.exe قطعا بسته خواهد شد
using System.Diagnostics;
using System.Collections;
System.Collections.Hashtable myHashtable;
قبل از باز نمودن برنامه excel روتين زير را فراخواني نماييد
publicvoid CheckExcellProcesses()
{
Process[] AllProcesses = Process.GetProcessesByName("excel");
myHashtable = newHashtable();
int iCount = 0;
foreach ( Process ExcelProcess in AllProcesses)
{
myHashtable.Add(ExcelProcess.Id, iCount);
iCount = iCount + 1;
}
}
در پايان براي حذف برنامه excel.exe در task manager برنامه زير را فراخواني نماييد
publicvoid KillXl()
{
Process[] AllProcess = Process.GetProcessesByName("excel");
foreach (Process ExcelProcess in AllProcess)
{
if (myHashtable.ContainsKey(ExcelProcess.Id) == false)
ExcelProcess.Kill();
}
AllProcess = null;
}
دوستاني كه با VB.Net كار مي كنند مي توانند مجموعه روتين هاي فوق را در يك dll به زبان C# قرار دهند و در موقع لازم روتين هاي را از dll فراخواني نمايند.
منبع
http://www.eggheadcafe.com/community/aspnet/2/8322/excel-application-in-c-excelexe-remains-in-tm.aspx
كامياب باشيد
وقتي در C# با برنامه Excel كار مي كنيم بستن برنامه Excel در Task Manager يكي از پر دردسرترين كارهاست كد زير را در بيشتر سايت ها مي توانيد پيدا كنيد ولي متاسفانه در بيشتر موارد درست كار نمي كند
oWB.Save();
oWB.Close(null, null, null);
oXL.Workbooks.Close();
oXL.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oXL);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oWB);
System.Runtime.InteropServices.Marshal.ReleaseComO bject(oSheet);
ولي با مجموعه كد زير برنامه excel.exe قطعا بسته خواهد شد
using System.Diagnostics;
using System.Collections;
System.Collections.Hashtable myHashtable;
قبل از باز نمودن برنامه excel روتين زير را فراخواني نماييد
publicvoid CheckExcellProcesses()
{
Process[] AllProcesses = Process.GetProcessesByName("excel");
myHashtable = newHashtable();
int iCount = 0;
foreach ( Process ExcelProcess in AllProcesses)
{
myHashtable.Add(ExcelProcess.Id, iCount);
iCount = iCount + 1;
}
}
در پايان براي حذف برنامه excel.exe در task manager برنامه زير را فراخواني نماييد
publicvoid KillXl()
{
Process[] AllProcess = Process.GetProcessesByName("excel");
foreach (Process ExcelProcess in AllProcess)
{
if (myHashtable.ContainsKey(ExcelProcess.Id) == false)
ExcelProcess.Kill();
}
AllProcess = null;
}
دوستاني كه با VB.Net كار مي كنند مي توانند مجموعه روتين هاي فوق را در يك dll به زبان C# قرار دهند و در موقع لازم روتين هاي را از dll فراخواني نمايند.
منبع
http://www.eggheadcafe.com/community/aspnet/2/8322/excel-application-in-c-excelexe-remains-in-tm.aspx
كامياب باشيد