解析c#操作excel后关闭excel.exe的方法

于是提出了kill process的方法,目前我见过的方法多是用进程创建时间筛选excel.exe进程,然后kill 。这样的方法是不精确的,也是不安全的,通过对网上一些关于Api运用文章的阅读,我找到了更为直接精确找到这个process并kill的方法
以下就是代码        


代码如下:

using   System.Runtime.InteropServices;

[DllImport("User32.dll",   CharSet   =   CharSet.Auto)]  
  public   static   extern   int   GetWindowThreadProcessId(IntPtr   hwnd,   out   int   ID);  
  protected   void   Button1_Click(object   sender,   EventArgs   e)  
  {  
      Excel.ApplicationClass   excel   =   new   Microsoft.Office.Interop.Excel.ApplicationClass();  
      excel.Workbooks.Open("d:\aaa.xls",   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);  
      IntPtr   t   =   new   IntPtr(excel.Hwnd);  
      int   k   =   0;  
      GetWindowThreadProcessId(t,   out   k);  
      System.Diagnostics.Process   p   =   System.Diagnostics.Process.GetProcessById(k);  
      p.Kill();                  
   }

以上代码百分百成功的关闭excel.exe进程
我的做法是结合两者,先释放资源,然后关闭进程。
同时网上说避免使用GC.Collect 方法 (),因为会导致整个clr进行gc,影响你的性能.所以我也没有调用GC.Collect

(0)

相关推荐

  • C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)

    前言 大家都知道,不少仪器工作站可xls文件和2007+的xl以将数据导出为Excel文件,包括97-2003版本的sx文件. 采集Excel文件相比采集pdf文件更容易.程序更健壮,毕竟Excel中数据有明确的行.列的定义,利于数据解析. Excel早期的xls文件和后来的xlsx文件的格式不一样,xls是二进制特定格式文件,xlsx是zip压缩包,其中数据使用xml定义.虽然两种文件格式定义不同,但解析文件数据可以通过中间件,因此只要理解了Excel文件的工作簿.sheet页.行.列.单元格

  • C# 解析 Excel 并且生成 Csv 文件代码分析

    今天工作中遇到一个需求,就是获取 excel 里面的内容,并且把 excel 另存为 csv,因为本人以前未接触过,所以下面整理出来的代码均来自网络,具体参考链接已丢失,原作者保留所有权利! 例子: 复制代码 代码如下: using System; using System.Data; namespace ExportExcelToCode {     class ExcelOperater     {         public void Operater()         {      

  • 解析c#操作excel后关闭excel.exe的方法

    于是提出了kill process的方法,目前我见过的方法多是用进程创建时间筛选excel.exe进程,然后kill .这样的方法是不精确的,也是不安全的,通过对网上一些关于Api运用文章的阅读,我找到了更为直接精确找到这个process并kill的方法以下就是代码         复制代码 代码如下: using   System.Runtime.InteropServices; [DllImport("User32.dll",   CharSet   =   CharSet.Aut

  • 如何用 Python 子进程关闭 Excel 自动化中的弹窗

    利用Python进行Excel自动化操作的过程中,尤其是涉及VBA时,可能遇到消息框/弹窗(MsgBox).此时需要人为响应,否则代码卡死直至超时 [^1] [^2].根本的解决方法是VBA代码中不要出现类似弹窗,但有时我们无权修改被操作的Excel文件,例如这是我们进行自动化测试的对象.所以本文记录从代码角度解决此类问题的方法. 假想场景 使用xlwings(或者其他自动化库)打开Excel文件test.xlsm,读取Sheet1!A1单元格内容.很简单的一个操作: import xlwing

  • yii2.0框架实现上传excel文件后导入到数据库的方法示例

    本文实例讲述了yii2.0框架实现上传excel文件后导入到数据库的方法.分享给大家供大家参考,具体如下: Model模型 <?php /** * 描述... * @author zcy * @date 2019/8/13 */ namespace app\models; use yii\base\Model; use yii\db\ActiveRecord; use yii\web\UploadedFile; class uploadForm extends ActiveRecord { pu

  • ASP.NET中生成Excel遇到的问题及改进方法

    先看一下方法(其中略去了一些判断和扩展): 生成Excel老代码 复制代码 代码如下: /// <summary> /// 将一组对象导出成EXCEL /// </summary> /// <typeparam name="T">要导出对象的类型</typeparam> /// <param name="objList">一组对象</param> /// <param name="

  • PHP使用PHPExcel删除Excel单元格指定列的方法

    本文实例讲述了PHP使用PHPExcel删除Excel单元格指定列的方法.分享给大家供大家参考,具体如下: 需求是这样的: 有一个系统仅公司内部和外部经销商使用,在一个导出功能中公司内部员工跟外部经销商导出的列是不一样的(某些数据是不能提供给经销商的) 因为导出的数据都是一样的(某些列外数据外部没有)因此并没有单独处理,而是统一生成然后根据不同的账户再删除没有权限的列 /** * @Author: HTL * @Description: 移出单元列 * @objPHPExcel: phpexec

  • asp.net实现数据从DataTable导入到Excel文件并创建表的方法

    本文实例讲述了asp.net实现数据从DataTable导入到Excel文件并创建表的方法.分享给大家供大家参考,具体如下: /// <summary> /// 把数据从DataTable导入到Excel文件里 /// </summary> /// <param name="dataTable">数据源</param> /// <param name="AbsoluteExcelFilePath">Exce

  • asp.net中EXCEL数据导入到数据库的方法

    本文实例讲述了asp.net中EXCEL数据导入到数据库的方法.分享给大家供大家参考.具体分析如下: excel是办公中非常常用的一个办公表格了,但我们在开发中通常会需要直接把excel数据快速导入到数据库中了,这里整理了一个asp.net中EXCEL数据导入到数据库的例子供各位参考学习. 注意:EXCEL中的第一行不能导入. 下面是源码:IntoExcel.aspx: 复制代码 代码如下: <%@ Page  AutoEventWireup="true" CodeFile=&q

  • MySQL数据库误操作后快速回滚的方法

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. binlog2sql快速回滚 首先,确认你的MySQL server开启了binlog,设置了以下参数: [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog_siz

  • mysql 导出select语句结果到excel文件遇到问题及解决方法

    一.导出数据外部 1)mysql连接+将查询结果输出到文件.在命令行中执行(windows的cmd命令行,mac的终端) mysql -hxx -uxx -pxx -e "query statement" db > file -h:后面跟的是链接的host(主机) -u:后面跟的是用户名 -p:后面跟的是密码 db:你要查询的数据库 file:你要写入的文件,绝对路径 例如: 下面将 sql语句 select * from edu_iclass_areas 的查询结果输出到了 /

  • C#基于OLEDB获取Excel文件表结构信息的方法

    本文实例讲述了C#基于OLEDB获取Excel文件表结构信息的方法.分享给大家供大家参考,具体如下: 这个问题来自论坛提问,同理可以获得access等数据库的表结构信息. using System; namespace ConsoleApplication11 { class Program { public static void Main() { getExcelFileInfo( @" c:a.xls " ); } private static void getExcelFile

随机推荐