我只是用普通文本替换了字段,而不是使用字段,并且当用动态字符串替换文本时,不会强制执行时间格式。希望这有帮助!
我在使用来自我的独立C#Windows应用程序的值更新Microsoft Word
模板时遇到问题。
对于时间输入,我允许用户选择他们是否希望以12小时格式使用am / pm或24小时格式。我有很好的应用程序方面的东西。但是当我调用Range.Find.Execute
,并且我选择了24小时格式时,最终的单词文档和pdf没有按照这种方式格式化的时间。模板中的字段会被替换,但无论我传入Range.Find.Execute
的字符串,它们都是12小时格式。
以下是我尝试过的代码:
private void FindAndReplace(Application wordApp,
object findText,
object replaceWithText)
{
object matchCase = true;
object matchWholeWord = true;
object matchWildCards = false;
object matchSoundsLike = false;
object nmatchAllWordForms = false;
object forward = true;
object format = false;
object matchKashida = false;
object matchDiacritics = false;
object matchAlefHamza = false;
object matchControl = false;
object replace = 2;
object wrap = 1;
foreach (Range range in wordApp.ActiveDocument.StoryRanges)
{
Range range2 = range;
while (range2 != null)
{
range2.Find.Execute(ref findText, ref matchCase, ref matchWholeWord, ref matchWildCards,
ref matchSoundsLike, ref nmatchAllWordForms, ref forward, ref wrap, ref format,
ref replaceWithText, ref replace, ref matchKashida, ref matchDiacritics, ref matchAlefHamza,
ref matchControl);
range2 = range2.NextStoryRange;
}
}
}
调用代码:
foreach (KeyValuePair<string, string> sEntry in qirSummaryData)
{
FindAndReplace(_mWordApp, sEntry.Key, sEntry.Value);
}
例如replaceWithText
为字符串"13:48"
时,Microsoft Word
文档或pdf会改为1:48 pm
。
有谁知道我错过了什么?我假设Microsoft Word
在事后已经应用了自己的时间格式,但我找不到如何以编程方式设置此格式,更不用说在Microsoft Word
本身中找到它。
非常感谢帮助:)