用编程的方式打开一个Excel,做一些编辑,然后保存。把保存后的结果显示到前台。try
{
    ExcelAccess objExcel1 = new ExcelAccess();     //ExcelAccess是我自己的Excel操作基类
    objExcel1.OpenExcelFile(TextBox1.Text);         //打开Excel文件
    ...
    objExcel1.Save();                               //保存
     Process.Start("编辑后Excel文件路径")              //这个地方不明白,这句话是重新开一个Excel进程了吧
}
catch()
{
    ....
}
finnally
{
    objExcel1.Close();  //执行这句出异常,我想上面都重新开进程了,不应该影响我关Excel操作类的对象吧
    objExcel1.ExitApplication();
}
求高手看看应该怎么改

解决方案 »

  1.   

    try
    {
        ExcelAccess objExcel1 = new ExcelAccess();     //ExcelAccess是我自己的Excel操作基类
        objExcel1.OpenExcelFile(TextBox1.Text);         //打开Excel文件
        ...
        objExcel1.Save();  
    objExcel1.Close();  //执行这句出异常,我想上面都重新开进程了,不应该影响我关Excel操作类的对象吧
        objExcel1.ExitApplication();                             //保存
         Process.Start("编辑后Excel文件路径")              //这个地方不明白,这句话是重新开一个Excel进程了吧
    }
    catch()
    {
        ....
    }
    先关闭 在打开新的文档
      

  2.   

    如果先关闭,连打开的Excel文件也被关闭了,不知道为什么
      

  3.   

    finally中出异常还要看上一级异常从哪儿抛出的,如果是这句:
        ExcelAccess objExcel1 = new ExcelAccess();     //ExcelAccess是我自己的Excel操作基类
    那objExcel1还没有正确赋值,finally中就不能调用它的方法啦。
    应该加上检查此变量是否为空。
      

  4.   

    objExcel1没有问题,如果我把Process.Start("编辑后Excel文件路径")去掉,程序正常终止
      

  5.   

    这个你需要去检查下你的ExcelAccess类了,问题应该出在这里
      

  6.   

    try
    {
        ExcelAccess objExcel1 = new ExcelAccess();     //ExcelAccess是我自己的Excel操作基类
        objExcel1.OpenExcelFile(TextBox1.Text);         //打开Excel文件
        ...
        objExcel1.Save();                               //保存
        Process p= Process.Start("编辑后Excel文件路径");             //这个地方不明白,这句话是重新开一个
    Excel进程了吧
    }
    catch()
    {
        ....
    }
    finnally
    {
    try{
    p.Kill();
        objExcel1.Close();  //执行这句出异常,我想上面都重新开进程了,不应该影响我关Excel操作类的对象吧
        objExcel1.ExitApplication();
    }catch{}
    }
      

  7.   

    疯了,只要我把ExcelAccess关了,Process打开的那个Excel也关了
      

  8.   


    那你就别关嘛,反正你也知道ExcelAccess进程调用的进程就是你新打开的那个进程(要不然不会一起关掉的),你前台显示后,由用户自己关闭