C# .Net - 在不打开 Word 的情况下在书签中插入文本
C# .Net - Insert text in Bookmark without opening Word
我设法使用 Microsoft.Office.Interop.Word
在 Word 文档的书签中插入文本。
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
using Range = Microsoft.Office.Interop.Word.Range;
Application app = new Microsoft.Office.Interop.Word.Application();
Document doc = app.Documents.Open(@"C:\wordDocument.docx");
string bookmark = "bookmarkName";
Bookmark bm = doc.Bookmarks[bookmark];
Range range = bm.Range;
range.Text = "Hello World";
doc.Bookmarks.Add(bookmark, range);
/* OR
doc.Bookmarks[bookmark].Select();
app.Selection.TypeText("Hello");
*/
问题是这也打开了Word文档。这可以在不打开文档本身的情况下完成吗?喜欢这一切都发生在后台吗?
更新 Word 文档书签的文本后,尝试使用 Save
和 Close
功能。
在doc.Bookmarks.Add(bookmark, range);
之后添加以下代码。
doc.Save();
doc.Close();
编辑:
如果计算机运行缓慢,Word 文档可能会在您打开后一秒钟内显示出来。正如hardcoregamer所说,你可以尝试先隐藏Word.Application
的对象再打开它。
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
using Range = Microsoft.Office.Interop.Word.Range;
Application app = new Microsoft.Office.Interop.Word.Application();
app.Visible = false; //Hide the Word.Application object.
Document doc = app.Documents.Open(@"C:\wordDocument.docx");
string bookmark = "bookmarkName";
Bookmark bm = doc.Bookmarks[bookmark];
Range range = bm.Range;
range.Text = "Hello World";
doc.Bookmarks.Add(bookmark, range);
doc.Save(); //save the document.
doc.Close(); //close the document.
app.Quit(); //close the Word.Application object. otherwise, you'll get a ReadOnly error later.
我设法使用 Microsoft.Office.Interop.Word
在 Word 文档的书签中插入文本。
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
using Range = Microsoft.Office.Interop.Word.Range;
Application app = new Microsoft.Office.Interop.Word.Application();
Document doc = app.Documents.Open(@"C:\wordDocument.docx");
string bookmark = "bookmarkName";
Bookmark bm = doc.Bookmarks[bookmark];
Range range = bm.Range;
range.Text = "Hello World";
doc.Bookmarks.Add(bookmark, range);
/* OR
doc.Bookmarks[bookmark].Select();
app.Selection.TypeText("Hello");
*/
问题是这也打开了Word文档。这可以在不打开文档本身的情况下完成吗?喜欢这一切都发生在后台吗?
更新 Word 文档书签的文本后,尝试使用 Save
和 Close
功能。
在doc.Bookmarks.Add(bookmark, range);
之后添加以下代码。
doc.Save();
doc.Close();
编辑:
如果计算机运行缓慢,Word 文档可能会在您打开后一秒钟内显示出来。正如hardcoregamer所说,你可以尝试先隐藏Word.Application
的对象再打开它。
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
using Range = Microsoft.Office.Interop.Word.Range;
Application app = new Microsoft.Office.Interop.Word.Application();
app.Visible = false; //Hide the Word.Application object.
Document doc = app.Documents.Open(@"C:\wordDocument.docx");
string bookmark = "bookmarkName";
Bookmark bm = doc.Bookmarks[bookmark];
Range range = bm.Range;
range.Text = "Hello World";
doc.Bookmarks.Add(bookmark, range);
doc.Save(); //save the document.
doc.Close(); //close the document.
app.Quit(); //close the Word.Application object. otherwise, you'll get a ReadOnly error later.