C# Word操作

改了2天word根据书签自动替换的东西,头晕眼花。。。

总结一下遇到的几个问题
1.根据书签自动替换后原来的书签消失了
解决办法:
根据书签替换后,再重新在这个位置加上书签

foreach (Word2007.Bookmark bm in oDoc.Bookmarks){
	string bmName = bm.Name;
	Range r = bm.Range;//得到书签的位置
	bm.Range.Text = "替换的内容";//将内容替换
	document.Bookmarks.Add(bmName, r);//将书签重新加上
}

2.按照以上方法添加书签后,发现书签所在的区域有变化,导致再一次根据书签生成文本的文档无法再次根据书签完成替换
解决办法:

foreach (Word2007.Bookmark bm in oDoc.Bookmarks){
	string bmName = bm.Name;
	Range r = bm.Range;//得到书签的位置
	bm.Range.Text = "替换的内容";//将内容替换
	r.SetRange(r.Start, r.End + "替换的内容".Length);//添加书签的范围
	document.Bookmarks.Add(bmName, r);//将书签和书签范围重新加上
}

你可能感兴趣的:(C#,Study)