如何打开现有的doc / x文件然后在其上写?

时间:2017-06-02 12:52:12

标签: c# .net ms-word

我想打开一个现有的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"代码有效。

1 个答案:

答案 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");