编程更改工作簿时隐藏Excel 2013

本文关键字:隐藏 Excel 2013 工作簿 编程 | 更新日期: 2023-09-27 18:22:08

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

如果我使用c#以编程方式打开Excel工作簿,并且interop Excel 2013将从一个新的应用程序窗口开始。我可以在代码中处理工作簿,但我想隐藏应用程序。使用

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

显示应用程序窗口后隐藏该窗口。是否有方法停止显示Excel 2010或更早版本中的应用程序?

编程更改工作簿时隐藏Excel 2013

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

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

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

Excel.Application excelApp = new Excel.Application() { Visible = false };

在打开任何工作簿之前隐藏代码启动的Excel应用程序:

Excel.Application excel = new Excel.Application();
excel.Visible = false;
[...]
Excel.Workbook workbook;
workbook = excel.Workbooks.Open(...);

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

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);