2013-07-12 3 views
3

Действительно good Новая функция Excel 2013 заключается в том, что она не может принудительно показывать более одной книги Excel в одном приложении. Это, по-видимому, является причиной моей проблемы:Скрыть Excel 2013 при программном изменении книги

Если я автоматически открываю книгу Excel с помощью C# и interop Excel 2013 начинается с нового окна приложения. Я могу работать с книгой в коде без проблем, но я хочу скрыть приложение. Использование

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

скрывает окно приложения после показа его. Есть ли способ прекратить показ приложения, как в Excel 2010 или более ранней версии?

+0

вы пробовали настройки 'Visible' ложь перед вызовом' Workbooks.Open() '? – cremor

+0

Да, без какого-либо эффекта. –

ответ

1

В моем Excel 2013, используя excelApp = new Excel.Application, не отображается окно.

Может ли это быть код VBA в открытой книге, которая отображает окно?

+0

Хмм, это было возможно. Потому что я не видел эту проблему каждый раз, когда открываю книгу Excel (а не приложение!). –

+0

Извините, кода VBA нет, и хуже того, что иногда отображается только Excel. Любая идея, которая могла бы заставить это поведение? –

-2

Вы всегда должны поставить Visible в Try/броской блок

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

Это неправда, по крайней мере, не для Word и Excel в версиях 2007 и 2010 годов. У меня никогда не было исключения из установки 'Visible' в false, и он всегда работал. Возможно, это верно для Powerpoint (это приложение, которому понравилось сообщение блога в вашем комментарии к коду), но определенно не для Word и Excel. – cremor

+0

Он работает ... Я запускаю его для Word, Excel и Powerpoint. Таким образом, downvote ошибочен ... Тестирование с 2003 2007 2010 и 2010 для надстройки и работает отлично, потому что приложение скрыто – mike27015

+0

Это не имеет никакого эффекта. Некоторые Excel-листы будут отображаться в Excel 2013 параллельно. –

0

Так что я знаю, вопрос старый, но мне нужен был ответ, и ни один из них не заданных работал для меня. В конце концов я установил Visible в false при инициализации, чтобы не открывать окно перед тем, как скрыть.

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

Скрыть приложение Excel код начал, прежде чем открыть любой Workbook:

Excel.Application excel = new Excel.Application(); 
excel.Visible = false; 
[...] 
Excel.Workbook workbook; 
workbook = excel.Workbooks.Open(...); 
Смежные вопросы