编程更改工作簿时隐藏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中,使用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);