改了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);//將書籤和書籤範圍重新加上
}