我正在尝试修改word文档并在某些特定位置插入数据(我有一个模板文档,我必须准备好并填写所有空格)。我正在使用Microsoft.Office.Interop.Word库和到现在为止我只想弄清楚如何在文档的末尾插入文本,我也会写下代码,所以也许有人可以帮助我。谢谢!
private void button1_Click(object sender, EventArgs e)
string str = null;
OpenFileDialog dia = new OpenFileDialog();
if (dia.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
str = dia.FileName;
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc1 = app.Documents.Open(str);
object missing = System.Reflection.Missing.Value;
doc1.Content.Text += "Merge?";
app.Visible = true;
doc1.Save();
this.Close();
}
}
答案 0 :(得分:1)
您可以使用Range
对象在特定位置插入文本。 msdn
doc1.Range(0, 0).Text = "Hello World";
如果您有模板并且插入文本的位置始终位于同一位置,您还可以使用Bookmark
。 msdn
<强> [更新] 强>
以下是通过书签将文本添加到word文档的完整示例:
Application app = new Microsoft.Office.Interop.Word.Application();
Document doc = app.Documents.Open(@"your file");
string bookmark = "BookmarkName";
Bookmark bm = doc.Bookmarks[bookmark];
Range range = bm.Range;
range.Text = "Hello World";
doc.Bookmarks.Add(bookmark, range);
使用此解决方案,书签不会被删除,您可以使用相同的代码再次添加/修改它。
答案 1 :(得分:0)
您可以使用以下内容将字符串插入特定位置的另一个字符串。
doc1.Content.Text = doc1.Content.Text.Insert(10, "Merge?");
来源:https://msdn.microsoft.com/en-us/library/system.string.insert(v=vs.110).aspx
答案 2 :(得分:0)
为简单起见,首先在MS Word中添加书签,如下所示:
选择要添加文本的区域,然后转到“插入”>“在Word中添加书签”。
然后按如下所示为书签命名:
然后使用Ben的以下修改版本:
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Document doc = app.Documents.Open(Path.Combine(Environment.CurrentDirectory, "Report.doc"));
Dictionary<string, string> bookmarks = new Dictionary<string, string> { { "DateOfIssue", "23-06-2018"}, { "TotalNumOfPages", "20" } };
foreach (var bookmark in bookmarks)
{
Bookmark bm = doc.Bookmarks[bookmark.Key];
Range range = bm.Range;
range.Text = bookmark.Value;
doc.Bookmarks.Add(bookmark.Key, range);
}
最后输出如下: