2016-09-28 7 views
-1

Я построил надстройку для Excel с помощью VSTO и развернуть его на ...Update VSTO Excel книги, не мешая самой данных

теперь у меня есть обновленная версия (где есть некоторые новые элементы управления на панели инструментов, новый столбец и некоторые ошибки, исправленные в поведении).

моя проблема в том, что мой клиент работал с предыдущей версией, заполнял свои данные внутри листа.

Как обновить надстройку VSTO и перенести данные?

спасибо за вашу помощь

ответ

1

Ну это зависит от того, как вы создали надстройку. Надстройка НЕ ​​связана с какой-либо книгой (которая отличается от document level customization), если вы этого не сделаете.

В основном вы просто меняете свой код, развертываете новую версию, и ваш клиент ее установит. При запуске Excel будет использоваться новая версия, поэтому, если у вас есть кнопка на ленте, кнопка теперь будет использовать новую версию.

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

Пример: У нас есть надстройка VSTO Word, которая делает много вещей, надстройка использует шаблон, который имеет такую ​​версию, как (1, 2, 3, 4 ...), когда мы измените шаблон (, например, добавление стилей, форм дополнений, удаление фигур и т. д.). Мы также поддерживаем метод рекурсивного обновления, который запускается при открытии документа. Метод проверяет версию шаблона с версией, жестко закодированной в коде, сравнивая, и если версия шаблона старше, будет запускаться функция обновления (шаг за шагом, поэтому от v1 до v2, затем от v2 до v3 и т. Д. До он достигнет последней версии)

Надежда, что помогает

+0

вы можете уточнить, как вы Keep/обновить версию документа? скрытый лист настроек? Метаданные документов? Сохранено в другом месте? как вы можете помешать клиенту изменить его? –

+0

@TomerW это MS Word, поэтому он немного другой, но все же может применяться к вашим потребностям. Поэтому мы сохраняем версию шаблона в [пользовательских свойствах документа] (https://msdn.microsoft.com/en-us/library/dhxe2d75.aspx), скажем # 1, в коде у нас есть константа * templateVer = 1 * , когда документ открывается, он проверяет версию, если то же самое, ничего не делает. если версия в ** code ** выше, мы вызываем нашу функцию обновлением. если он не по какой-либо причине = это проблема пользователя, они не должны изменять шаблон, хотя мы всегда стараемся исправить наиболее распространенные проблемы. Конечно, они могут изменять данные, но не макет – PetLahev

+0

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