Очевидно, что правильный способ для нашего приложения создать документ Word на основе шаблона — это побудить пользователей-администраторов (которые будут следить за шаблонами) встраивать правильные поля слияния или закладки в документ шаблона.
Однако в прошлом мы обнаружили, что наш типичный пользователь-администратор, который обычно не использует MailMerge или какие-либо другие «расширенные» функции в Word, значительно отстает от необходимости использовать поля слияния. Мы пытались сделать это для них, создавая документацию, множество скриншотов и т. д. Но для них это все «муторно».
У них есть десятки шаблонов (все это просто разные виды очень простых букв), и они будут хотеть изменять их достаточно часто.
Чего бы им действительно хотелось, так это иметь возможность просто помечать поля простым разделителем, например фигурной скобкой, которая эффективно помечает самодельное поле слияния для нашего приложения (хотя Word не обращает внимания на его значение), как в:
Уважаемый {CustomerSurname}
Затем мы можем просто выбрать поле (поля) с несколькими строками кода, как показано ниже:
w = New Word.Application
d = w.Documents.Open(...)
Dim mergedContent As String = d.Content.Text
mergedContent = mergedContent.Replace("{CustomerSurname}", Customer.Surname)
mergedContent = mergedContent.Replace("{CustomerPostcode}", Customer.Postcode)
d.Content.Text = mergedContent
Это кажется грубым, но красиво простым (для конечного пользователя).
Кто-нибудь еще пошел по этому пути? Что-то не так с этим? Мы бы посоветовали им не использовать символы "{" и "}" где-либо еще в обычном тексте документа, но на самом деле это не является существенным ограничением.
Скорость? Перенести поле слияния на две строки? Другие проблемы?