3

Excel 2013的一个非常好的新功能是它不能强制在一个应用程序中显示多个 Excel 工作簿。这似乎是我的问题的原因:

如果我使用 c# 以编程方式打开 Excel 工作簿并且互操作 Excel 2013 会从一个新的应用程序窗口开始。我可以毫无问题地在代码中使用工作簿,但我想隐藏应用程序。使用

   Excel.Application excelApp = new Excel.Application();
    ......
    excelApp.Workbooks.Open(...);
    excelApp.Visible = false;

显示后隐藏应用程序窗口。有没有办法停止在 Excel 2010 或更早版本中显示应用程序?

4

4 回答 4

1

在我的 Excel 2013 中,使用excelApp = new Excel.Application不显示任何窗口。

可能是打开的工作簿中显示窗口的一些 VBA 代码?

于 2013-07-12T08:32:10.933 回答
0

所以我知道这个问题很老,但我需要一个答案,而且给定的答案都不适合我。我最终只是在初始化时将 Visible 设置为 false 以避免窗口在隐藏之前闪烁打开。

Excel.Application excelApp = new Excel.Application() { Visible = false };
于 2016-04-14T20:36:27.340 回答
0

在打开任何 Workbook 之前隐藏您的代码已启动的 Excel 应用程序:

Excel.Application excel = new Excel.Application();
excel.Visible = false;
[...]
Excel.Workbook workbook;
workbook = excel.Workbooks.Open(...);
于 2017-03-13T13:28:43.843 回答
-2

您应该始终将 Visible 放入 try/catch-block

Excel.Application xlsApp = new Excel.Application();
try
{
     // Must be surrounded by try catch to work.
     // http://naimishpandya.wordpress.com/2010/12/31/hide-power-point-application-window-in-net-office-automation/
     xlsApp.Visible = false;
     xlsApp.DisplayAlerts = false;
}
catch (Exception e)
{
     Console.WriteLine("-------Error hiding the application-------");
     Console.WriteLine("Occured error might be: " + e.StackTrace);
}
 Excel.Workbook workbook;
 workbook = xlsApp.Workbooks.Open(File, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                            Type.Missing, Type.Missing);
于 2013-07-12T08:40:52.787 回答