Как обновить внешние ссылки в Excel с помощью OpenXML

У меня есть книга с парой внешних ссылок. Нам нужно регулярно обновлять ссылки, чтобы они указывали на новую базу данных Excel, поэтому я делаю небольшое приложение для Windows, чтобы делать это автоматически.

Я пытаюсь использовать OpenXML, чтобы сделать это. Я не хочу использовать Interop, потому что открытие файла, изменение ссылки и повторное закрытие книг занимает слишком много времени.

Любые идеи, пожалуйста, дайте мне знать. Я также готов использовать ClosedXML для этого.


person QV1    schedule 19.08.2014    source источник
comment
Мне удалось сделать это с помощью Interop, но это слишком медленно. Я смотрю на OpenXML SDK, а ExternalWorkbookParts — это класс, из которого я могу получить список ссылок, однако я не могу найти ничего, чтобы обновить их.   -  person QV1    schedule 19.08.2014


Ответы (1)


Вы используете это на ограниченном количестве машин? например Один ноутбук для администратора БД? Если да, я бы посоветовал вам использовать соединения DSN в Excel и обновлять их из редактора DSN при изменении базы данных.

См. следующее в Windows. C:\Windows\System32\odbcad32.exe

Таким образом, любые файлы, использующие этот DSN, будут иметь обновленные соединения.

person AnalystCave.com    schedule 19.08.2014
comment
Файлы будут использоваться на общем сервере, поэтому я не уверен в вашем решении. На самом деле я впервые вижу эти DSN-соединения, так что спасибо, что познакомили меня с чем-то новым! - person QV1; 19.08.2014
comment
Поэтому это зависит от безопасности db. Если вы можете предоставить всем пользователям доступ к файлу разрешения на ЧТЕНИЕ, это все еще должно быть осуществимо. Если нет, я бы выбрал ClosedXML — гораздо более прогрессивный, чем OpenXML. - person AnalystCave.com; 19.08.2014