我想打开一个现有的MS Word文档,然后在其上写一个特定的文本。
现有文件有以下内容:
首次购车费用...... $。
我想在费用之后添加一个特定文字。 最终文本应为:
首辆车的费用为15000美元。
我想用一个简单的c#应用程序来做这件事。 我很难找到在所需位置添加文字的方法。
我使用了名为DocX的NuGet包。 这是我的代码:
using Novacode;
using System.Text.RegularExpressions;
...
string fileName = @"C:\Users\DAFPC\Documents\WordDoc1.docx";
var doc = DocX.Load(fileName);
doc.ReplaceText("...", "15000",false, RegexOptions.None, null, null, MatchFormattingOptions.SubsetMatch, true, false);
doc.Save();
Process.Start("WINWORD.EXE", fileName);
代码不会取代" ..."用" 15000"。但如果我试着替换“#34; Car"用" 15000"代码有效。
答案 0 :(得分:2)
检查修改
doc.ReplaceText(toReplace, replacement);
您应该将其包装在如下函数中:
static void Main(string[] args)
{
string filename = "test.docx";
ReplaceInDocx(filename, "...", "15000");
}
static void ReplaceInDocx(string filename, string toReplace, string replacement)
{
var doc = DocX.Load(filename);
doc.ReplaceText(toReplace, replacement);
doc.Save();
}
您可能会发现this有用。
编辑:好的,我明白你的意思了。问题在于MS Word的工作方式。当您输入“...”时,它会自动转换为“...”(省略号)。那么,你应该做的是搜索它。或者更好的是,更改搜索参数。
ReplaceInDocx(filename, "…", "car");