Есть ли способ закрыть диалоговое окно "Конфликты имен" перед открытием файла XLSX в C# в Excel 2007?

Я столкнулся с проблемой при открытии книги xlsx с помощью кода C#.

Проблема: при открытии xlsx появляется всплывающее окно, и пользователь ожидает его подтверждения.

Причина: причина популярности известна, так как это - известная проблема.

Возможное решение: необходимо автоматизировать и подавить это всплывающее окно, поэтому не требуется никакого ручного вмешательства.

Ссылка на одно из таких решений на VB: http://social.msdn.microsoft.com/Forums/office/en-US/546c7506-7146-45b6-873e-b3793df2979b/is-there-a-way-to-supress-name-conflicts-dialog-in-excel-2007?forum=exceldev

Вопрос к форуму:

Решение, упомянутое выше, основано на VB. Я нахожусь в поиске такого решения в C#.** И важно ** вопрос, как обнаружить такое всплывающее окно в коде.

Всплывающее окно отображается после вызова: Workbook.Open(.....). Также это не исключение и не возвращаемое значение.

Есть ли способ узнать такую ​​популярность заранее, прежде чем открывать файл?

2 ответа

У меня та же проблема в рабочей книге, которая динамически заполняется через C# и фильтрует некоторые данные.

После того, как я выполнил этот код VBA:

On Error Resume Next
With Workbook("YourWokrbookName")
  .Names("_FilterDatabase").Delete
  .Names("Criteria").Delete
  .Names("Extract").Delete
End With
On Error GoTo 0

Который я нашел здесь и приспособил для моего использования, я никогда не получал окно сообщения конфликта имен. Он просто удаляет объект _FilterDatabase на листе. Это может быть бесполезно в каждом случае, но в моем случае это не имело значения.

Ссылка показывает вам не код VB.NET, а его код VBA. Для этого кода вы уже должны открыть документ XLSX.

Но я не знаю, как найти его, прежде чем открыть документ.

Один путь, не очень хороший способ. Чтобы просмотреть файл xlsx (это zip-архив), найти место и удалить его. Вы можете попробовать использовать OpenXML SDK от Microsoft, чтобы удалить определенное имя.

Здесь вы найдете описание OpenXML SDK для Excel: http://msdn.microsoft.com/de-de/library/documentformat.openxml.spreadsheet(v=office.15).aspx

Надеюсь, это немного поможет!

Другие вопросы по тегам