【问题标题】:c # interop Can you tell which file excel is running using excel?c# interop 你能用excel判断excel正在运行哪个文件吗?
【发布时间】:2019-06-18 12:27:40
【问题描述】:

我想退出 Excel,当有很多 Excel 运行时,它会打开某些文件。

我知道如何运行 Excel excel 并且知道如何终止进程,但我不知道如何退出读取某些文件的 excel。

我想知道是否有办法通过互操作或其他方式关闭运行特定文件的 excel(或 office)。

【问题讨论】:

标签: c# excel interop


【解决方案1】:

Excel 在这里是一条红鲱鱼,您实际上要做的是发现哪个正在运行的进程锁定了磁盘上的特定文件。特别是它是一个excel文件并不重要。这是一个相当普遍的要求,并且在其他 SO 答案中得到了很好的介绍,例如:

How do I find out which process is locking a file using .NET?

【讨论】:

    【解决方案2】:

    这就是你想要的:

     foreach (var process in Process.GetProcessesByName("EXCEL"))
        {
            process.Kill();
        } 
    

    【讨论】:

      【解决方案3】:

      关闭特定/特定的 excel 文件

      private static void KillSpecificExcelFileProcess(string excelFileName)
      {
          var processes = from p in Process.GetProcessesByName("EXCEL")
                          select p;
      
          foreach (var process in processes)
          {
              if (process.MainWindowTitle == excelFileName.Substring(0, excelFileName.IndexOf(".")) + " - Excel" )
                  process.Kill();
          }
      }
      

      在方法调用中传递文件名,结果特定进程将被关闭/杀死

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-12
        • 1970-01-01
        • 1970-01-01
        • 2012-10-14
        • 1970-01-01
        相关资源
        最近更新 更多