Как я могу открыть документ Office с сервера sql через мое приложение Windows на С# и автоматически сохранить его в базе данных после завершения редактирования?

Наше приложение написано на C# с использованием .net 2.0. Приложение отслеживает наш бизнес-процесс, и пользователи могут прикреплять офисные документы для справки в качестве вложений. Они часто редактируют эти документы. В настоящее время они должны сохранить файл на своем жестком диске, отредактировать и сохранить файл, а затем повторно подключиться к нашему приложению для сохранения в базе данных (SQL 2005).

Наши пользователи хотели бы иметь возможность редактировать документ и сохранять изменения без необходимости отсоединения, редактирования и повторного прикрепления.

Мы можем программно запустить офисный документ (word, excel или powerpoint), но как узнать, что документ закрылся, и автоматически повторно прикрепить обновленную версию к базе данных?

Спасибо за любую помощь.

Джо


person Community    schedule 29.06.2009    source источник
comment
Если вы запускаете приложение с помощью API автоматизации, то наверняка сможете сказать, когда оно завершилось. Вы также должны иметь возможность получать событие при сохранении файла.   -  person John Saunders    schedule 30.06.2009


Ответы (3)


У вас может быть назначенный каталог (например, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)), где вы храните файлы, редактируемые в данный момент, и помещаете FileSystemWatcher, чтобы следить за изменением файла.

Класс Diagnostics.Process также имеет событие Exited, которое уведомит вас, когда процесс завершится.

person flq    schedule 29.06.2009

Изучите технологию SmartDocument в MSDN. Из трех упомянутых вами приложений для повышения производительности (Word, Excel, Powerpoint) первые два и, возможно, Powerpoint могут иметь правую боковую панель, где вы обычно видите стили, навигацию или задачи, запрограммированные через VS с использованием SmartDocument и Инструменты для подключаемых модулей Office.

Таким образом, вы можете запрограммировать панель таким образом, чтобы пользователь, работающий в Office или Excel (и, возможно, в PP — не рассматривал это) мог выбрать редактируемый документ из вашего приложения, внести изменения и сохранить/прикрепить файл. документ, все из интерфейса Word. Программирование за правой боковой панелью автоматически позаботится об отсоединении и повторном присоединении документа, а также может сохранить документ на SQLServer, если хотите.

Надеюсь это поможет.

person EoRaptor013    schedule 04.07.2009

Если вы запускаете файл с помощью метода Process.Start и передаете путь к файлу в качестве параметра, вы можете использовать метод WaitForExit() для получения уведомления, когда пользователь закрыл файл.

person Giorgi    schedule 28.12.2009