Проблемы при загрузке файла Excel 2007 в элемент управления WebBrowser в C #? - PullRequest
1 голос
/ 21 октября 2010

Мне нужно разместить электронную таблицу Excel в нашем приложении WinForms.Похоже, загрузка файла Excel в элемент управления WebBrowser - это то, что нужно.В интернете есть несколько статей на эту тему.Тем не менее, они в основном используют Excel 2003 (я думаю).В Excel 2007 появилось несколько новых проблем:

  1. По умолчанию электронная таблица Excel открывается в новом окне, а не встраивается в мой элемент управления WebBrowser.Основываясь на Microsoft, это сделано по замыслу, но оно также предлагает исправление путем изменения настроек реестра.Это не очень хорошо, но я, вероятно, могу с этим смириться.

  2. С этим изменением реестра я смог встроить электронную таблицу Excel в свой элемент управления WebBrowser.Тем не менее, книга Excel по-прежнему открыта в фоновом режиме, которую я даже не могу закрыть, но она закрывается автоматически, когда мое приложение WinForm закрывается.Интересно наблюдать, как загружается электронная таблица: сначала она загружается в книгу Excel (в фоновом режиме), а затем переносится в мой элемент управления WebBrowser.Как я могу избавиться (или скрыть) это фоновое окно?РЕДАКТИРОВАТЬ: На самом деле, окно Excel не закрывается, но помещается в фоновом режиме.Однако с помощью этой статьи в CodeProject ее можно закрыть.В этой статье окно Excel закрывается при закрытии WinApp.Но эту же функцию можно использовать для закрытия этого окна в событии DocumentBompleted WebBrowser.Это не идеально, потому что вы все еще видите вспышку экрана, но все в порядке.Я хотел бы, чтобы был лучший способ сделать это.Чтобы избежать мигания экрана, я старался просто свернуть окно Excel.Однако, когда я пытаюсь установить WindowState в Minimized, он генерирует исключение COM.Любая подсказка?Было бы лучше, если бы я мог скрыть это отключенное окно с самого начала.

  3. Когда вы открываете электронную таблицу в первый раз, появляется окно с сообщением, запрашивающим варианты «Открыть», «Сохранить »и« Отмена ».Есть флажок для его отключения.Но я не хочу, чтобы это сообщение появлялось.Какой параметр реестра для этого?

  4. В моей электронной таблице есть дополнительный компонент, который должен загружаться динамически.Однако загрузка его в WebBrowser не работает (он не может его найти).Если я активирую надстройку, она загружается без проблем.Есть ли что-то в WebBrowser, которое нужно изменить, чтобы оно работало?

Есть ли лучшие альтернативы для размещения электронной таблицы Excel в приложении WinForms?

1 Ответ

0 голосов
/ 21 октября 2010

Если вы контролируете пользователей и какую офисную версию они используют, вы можете щелкнуть правой кнопкой мыши меню в Visual Studio и добавить соответствующий элемент управления Excel на панель инструментов.Возможно, вы также сможете динамически загрузить элемент управления (что может потребовать гораздо больше работы из-за нюансов каждого), проверив реестр и обработав ошибки.

...