yyyy separador poner numérico numero mmmm miles hora formato fecha decimales cómo correspondencia como combinar combinacion campos cambiar aplicar c# interop ms-word vsto mergefield

c# - separador - mergefield hora



Reemplace MergeFields en un documento de Word 2003 y mantenga el estilo (1)

He intentado crear una biblioteca para reemplazar MergeFields en un documento de Word 2003, todo funciona bien, excepto que pierdo el estilo aplicado al campo cuando lo reemplazo, ¿hay alguna manera de mantenerlo?

Este es el código que estoy usando para reemplazar los campos:

private void FillFields2003(string template, Dictionary<string, string> values) { object missing = Missing.Value; var application = new ApplicationClass(); var document = new Microsoft.Office.Interop.Word.Document(); try { // Open the file foreach (Field mergeField in document.Fields) { if (mergeField.Type == WdFieldType.wdFieldMergeField) { string fieldText = mergeField.Code.Text; string fieldName = Extensions.GetFieldName(fieldText); if (values.ContainsKey(fieldName)) { mergeField.Select(); application.Selection.TypeText(values[fieldName]); } } } document.Save(); } finally { // Release resources } }

Intenté usar los métodos CopyFormat y PasteFormat en la selección, también usando get_style y set_style pero no exent.


En lugar de usar TypeText sobre la parte superior de su selección, use la propiedad Result del campo:

if (values.ContainsKey(fieldName)) { mergeField.Result = (values[fieldName]); }

Esto asegurará que se mantenga el formato en el campo.