您的位置:首页 > 其它

彻底结束EXCEL进程

2009-05-26 23:23 295 查看
调用EXCEL的类代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.Reflection;
namespace Train.OpeExcel
{
public class mExcel
{

Application xApp = new ApplicationClass();  //建立一个新的EXCEL应用
Workbook xBook = null;                      //一个工作部
Worksheet xSheet = null;                    //一个表格
/// <summary>
/// 打开一个新的EXCEL
/// </summary>
public void CreateExcel()
{
xBook = xApp.Workbooks.Add(Missing.Value);      //新建表.
xSheet = (Worksheet)xBook.ActiveSheet;          //获得当前表格
xApp.Visible = true;                            //设置工作区显示
}
/// <summary>
/// 工作簿被另存为
/// </summary>
/// <param name="FilePath">新保存文件路径</param>
public void SaveAs(string FilePath)
{
xSheet.SaveAs(@FilePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

}
/// <summary>
/// EXCEL退出
/// </summary>
public void Quit()
{
xApp.Application.Workbooks.Close();//关闭工作簿
xSheet=null;//释放表引用
xBook=null;//释放工作簿引用
Int32 generation = System.GC.GetGeneration(xApp);//获得当前代数
xApp.Quit();//退出应用
xApp = null;//释放应用对象引用
System.GC.Collect(generation);//收回应用资源
}
/// <summary>
/// 内存回收
/// </summary>
public void ClearMemory()
{
GC.Collect();  //资源回收!
}

}
}


测试模块代码,也就是一个win窗体代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Train.OpeExcel;
namespace Train.Office
{
public partial class frmMain : Form
{
mExcel m_Excel = null;
public frmMain()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
m_Excel = new mExcel();
m_Excel.CreateExcel();
m_Excel.SaveAs(@"D:/12.xlsx");

}

private void button2_Click(object sender, EventArgs e)
{
if (m_Excel != null)
{
m_Excel.Quit();
m_Excel.ClearMemory();

}
}
}
}


经过测试,完全能够在关闭EXCEL,(标准是在进程管理器中找不到对应的进程)

测试环境:VISTA(cn) + OFFICE2007(cn)

OFFICE(word,access)其他的类似。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: