Spire.Doc组件的引用就不说了,可以在官网注册下载免费版
也可在https://download.csdn.net/download/m0_37639018/11267059处下载
Document document = new Document(path);
//实例化BookmarksNavigator类
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
foreach (Bookmark book in document.Bookmarks)
{
if (book.Name == "code")
ReplaceBookMak(bookmarkNavigator, book.Name, "code");
else if (book.Name == "name")
ReplaceBookMak(bookmarkNavigator, book.Name, "name");
}
插入文本到书签,也可替换书签的原内容
//替换书签
private void ReplaceBookMak(BookmarksNavigator bookmarkNavigator, string markName, string value)
{
//定位到书签“bookmark1”所在段落的位置
bookmarkNavigator.MoveToBookmark(markName, true, true);
//删除原有书签位置的内容
//bookmarkNavigator.DeleteBookmarkContent(true);
//用新添加段落的内容替换掉原书签的内容并保留格式
//bookmarkNavigator.ReplaceBookmarkContent(value, true);/
bookmarkNavigator.InsertText(value, true);
}
对于可选方框,其实实质上也是文本,可以将书签内容替换为“□”、“☑”,也可以利用特殊编码。
可利用TextRange设置好字体wedings2,才能显示正确。
很多时候,word中会使用表格
//获取word模板中的表格
var tb1 = document.Sections[0].Tables[1];
//创建列(若仅填充的话,不用创建)
tb1.AddRow().AddCell();
tb1.Rows[0].Cells[0].AddParagraph().AppendText("第一行第一列");
获取书签内容
//初始化BookmarkNavigator类对象
BookmarksNavigator navigator = new BookmarksNavigator(document);
//定位到指定书签位置,获取书签位置的文档内容
navigator.MoveToBookmark("bookmark1");
TextBodyPart textBodyPart = navigator.GetBookmarkContent();
//遍历书签内容中的子项目,并将文本信息提取至string类型变量中
string text = null;
foreach (var item in textBodyPart.BodyItems)
{
if (item is Paragraph)
{
foreach (var childObject in (item as Paragraph).ChildObjects)
{
if (childObject is TextRange)
{
text += (childObject as TextRange).Text;
}
}
}
}