使用Open XML SDK替换文本

时间:2018-09-14 01:25:22

标签: c# docx openxml-sdk

我有一个小程序,它通过接受用户输入并在模板中编写替换字符串来生成一些文档。我有一些变量,例如日期和创建文档的人的名字。但是我有两个变量,即纬度和经度,无法在生成的文档中替换。在我使用的文档模板中,所有需要替换的字段都具有以下格式:{field}。因此,替换名称看起来像:{name}。除经度和纬度外,所有其他六个变量都起作用。这些数字是网格坐标,因此它们的写法类似于12.3456,-98.7654。我将它们定义为字符串(以及所有其他变量)。我认为我的正则表达式不正确/损坏。

例如,经度函数如下所示:

 Console.WriteLine("Enter Longitude");
 longitude = Console.ReadLine();
 Console.WriteLine($"Longitude: {longitude}");

替换文档中文本的正则表达式如下:

Regex regexLongitude = new Regex("{longitude}");
docText = regexLongitude.Replace(docText, longitude);

纬度功能相同,只需将longitude替换为latitude。实际上,我所有的变量都在这些相同的函数中定义和使用。

此问题是一致且可重复的。我尝试重命名变量,将变量重新定义为浮点数(我认为无论如何我都做得不正确),即使只是使用不带小数点的随机数字字符串也是如此。即使我使用abc之类的文本作为坐标,也不会替换它们。正则表达式中的内容只是跳过了这一点。我过去几天一直在做研究,但现在很茫然。

0 个答案:

没有答案