Я создаю приложение ac #, которое выполняет некоторые вычисления в файле Excel, загружаемом Excel Interop.
Я использую это для открытия файла Excel с помощью этой функции:
private Workbook OpenExcelFile(String path, String password = null)
{
if(!File.Exists(path))
{
MessageBox.Show("Error loading" + path);
}
if (null == excel)
{
excel = new Application();
}
excel.Visible = false;
Workbook wb = null;
if (password != null)
{
wb = excel.Workbooks.Open(path, ReadOnly: true, Password: password);
return wb;
}
wb = excel.Workbooks.Open(path, ReadOnly: true);
return wb;
}
Затем я могу использовать рабочую книгу в приложении.как это OpenExcelFile("file.xlsx", "Password")
Когда я открываю скомпилированный exe-файл, я вижу новый экземпляр Excel.exe в диспетчере задач, который в порядке, но окно Excel не отображается.
Теперь у меня проблемный случай: я использую Excel 2010 и делаю это:
Я создаю новый файл Excel на рабочем столе и открываю его.Теперь на панели задач видны не 1, а 2 Windows Excel.первый - «новый файл Excel», второй - «file.xlsx», который используется программным обеспечением и не должен быть видимым для пользователя, поскольку он содержит некоторую секретную бизнес-логику, которую мы не хотим, чтобы пользователь знал.Я также могу использовать кнопку переключения между листами Excel в Excel, чтобы увидеть «секретный» файл Excel.Также лист Excel разблокирован.Нет необходимости вводить пароль.
Когда я делаю то же самое с Excel 365, открывается только «Новый файл Excel».Я не вижу скрытый файл Excel и не вижу никакого контента.Я не прокомментировал, чтобы открыть файл или что-нибудь.Файл «file.xlsx» мне не виден.
Так что мой вопрос:
Есть ли способ предотвратить отображение файла в Excel 2010. Есть ли способ сделатьфайл даже виден в Excel 365 без ввода пароля.Это также было бы плохой ситуацией для нас.
О, я знаю об этом: Запрет Workbooks.Open () сделать Excel видимым в проводнике Windows