C#操作Word之在书签处写入特殊字符

 C#读写word想实现下面的效果:

为了控制样式,最简单的方式就是使用书签:

(1)将打钩的方框改为不打钩的方框,

(2)给每个方框插入书签,不同的土地利用类型有不同的编码,旱地前的方框就可以插入书签命名为TDLYLX013,

(3)在程序中获取土地利用类型,通过与书签名称匹配,将对应的方框修改为打钩的方框。

打钩的方框字体名称是 Wingdings(在word中查看),同时直接在word中复制打钩的方框粘贴到程序中,打钩的方框在程序中会显示为

if (bk.Name == "TDLYLX" + tdlylx)
{
     bk.Range.Font.Name = "Wingdings";
     bk.Range.Text = "þ";
}

完整示例如下:

#region  word文档设置
Microsoft.Office.Interop.Word.Application wApp = new Microsoft.Office.Interop.Word.ApplicationClass();
wApp.Visible = false;
Microsoft.Office.Interop.Word._Document wDoc = null;
Microsoft.Office.Interop.Word.Table table = null;
System.Collections.IEnumerator pEnumerator = null;
Microsoft.Office.Interop.Word.Bookmark bk = null;
#endregion

string sFilePath = "D:\\test\\模板文件.doc";//模板文件路径
string docfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\test.doc";
System.IO.File.Copy(sFilePath, docfile, true);//将模板文件从D盘复制到C盘指定目录
wDoc = wApp.Documents.Open(docfile);//打开word文件

#region 填写书签部分
string sfjbnt="1";//1表示是
string tdlylx="013";//013表示旱地
pEnumerator = wApp.ActiveDocument.Bookmarks.GetEnumerator();
while (pEnumerator.MoveNext())
    {
         bk = (Microsoft.Office.Interop.Word.Bookmark)pEnumerator.Current;
         if (bk.Name == "XM")
         {
             bk.Range.Text = "张三";
         }
         else if (bk.Name == "SFJBNT" + sfjbnt)
         {
             bk.Range.Font.Name = "Wingdings";//设置字体
             bk.Range.Text = "þ";//内容是打钩的方框
         }
         else if (bk.Name == "TDLYLX" + tdlylx)
         {
             bk.Range.Font.Name = "Wingdings";
             bk.Range.Text = "þ";
         }
     }
#endregion
wDoc.Close(true);
if (wApp != null)
{                                            
  System.Runtime.InteropServices.Marshal.ReleaseComObject(wApp);
  wApp = null;
}
GC.Collect();
System.Diagnostics.Process[] excelprocess = System.Diagnostics.Process.GetProcessesByName("WINWORD");
foreach (System.Diagnostics.Process pr in excelprocess)
{
   pr.Kill();//停止关联进程
}


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值