【问题标题】:If a file is open get file to front [closed]如果文件打开,则将文件放在前面[关闭]
【发布时间】:2011-07-29 19:05:10
【问题描述】:

尝试打开工作簿文件时出现以下错误。

The process cannot access the file '.. File.xls' because it is being used by another process

如果文件已经打开,我该如何将工作簿向前打开,而不是再次打开文件。


复制自 OP 的评论:

Excel 应用程序在前面。问题是,我以编程方式打开了一个工作簿,来到了前面。现在我在旧工作簿上做了一些工作,再次单击按钮打开已经打开的工作簿。现在自从它开放以来,给了我一个例外。因此,我希望那张旧床单出现在前面。

【问题讨论】:

  • 您能否发布您用来打开工作簿的代码。
  • @Nick 是的,我正在使用 Excel 互操作。
  • 如果文件已打开,但 Excel 中未打开,该怎么办?
  • 这个问题不应该被关闭。这是一个真正的问题,只是措辞不当。

标签: c# excel


【解决方案1】:

这是一个两步解决方案

  1. 您必须首先使用当前正在使用该文件的find the process
  2. 然后,一旦你有了 ProcessId,你就必须使用 Win32 API bring it to the front

【讨论】:

    【解决方案2】:

    如果您使用的是 excel-interop,那么您只需将您的 excel 应用程序实例的可见性设置为 true。例如

    excelApp.Visible = true;

    即使该值已经为真,这也会把它带到前面。

    【讨论】:

    • 让我把整个场景:Excel App 放在前面。问题是,我以编程方式打开了一个工作簿,来到了前面。现在我在旧工作簿上做了一些工作,再次单击按钮打开已经打开的工作簿。现在自从它开放以来,给了我一个例外。因此,我希望将那张旧纸放在前面。
    • @buffer 所以应用程序在顶部,但您需要将工作表带到打开的应用程序的前面?
    • 是的。这就是我想要的。 Excel 已打开。我想要一份特别的工作簿放在前面。
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    相关资源
    最近更新 更多