CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

.net 操作word书签的问题

楼主tangsailei(line)2006-03-17 17:03:38 在 .NET技术 / C# 提问

c#中如何正确替换word书签的内容?  
   
                  string   strWordTemplate   =   Server.MapPath("司法.doc"); //   模板文件  
              Word.Application   WordApp   =   new   Word.ApplicationClass();  //     定义一个Word.Application   对象  
  Word.Document   doc   =   OpenDoc(strWordTemplate,ref   WordApp,1); //定义一个Word.Document   对象  
                  foreach(Word.Bookmark   BM   in   doc.Bookmarks)   
                    {  
    switch(BM.Name)  
                            {  
   
                                    case   "PrintCopySEGN":  
                  BM.Select();  
                                    BM.Range.Text="test";//在这里报错,原因是   赋值前   BM.Range.Text   =   "   formText   "   执行这条语句之后提示: "无法删除范围。"  
   
                  break;  
                              }  
                    ......  
                    }  
   
  请高手帮忙解答 问题点数:20、回复次数:4Top

1 楼tangsailei(line)回复于 2006-03-20 10:23:03 得分 0

自己顶一下  
  Top

2 楼20011521()回复于 2006-03-20 11:15:03 得分 10

private   void   button2_Click(object   sender,   System.EventArgs   e)  
  {  
  //数据库是否存在  
  if(   this.getData()   )  
  {  
  System.Data.DataRow   dr;  
  System.Data.DataView   dv=   this.dsScore.Tables[0].DefaultView;  
  for(   int   i=0;   i<   this.dsStu.Tables[0].Rows.Count;   i++   )  
  {  
  //建立新文档  
  object   missing   =   System.Reflection.Missing.Value;  
  if(   App   ==   null   )  
  App   =   new   Word.ApplicationClass();  
  App.Visible   =   true;  
   
  object   oTemplate   =   this.模板.Text.Trim();  
  doc   =   App.Documents.Add(ref   oTemplate,   ref   missing,ref   missing,   ref   missing);  
  doc.Activate();  
   
  Word.Bookmarks   bms   =   doc.Bookmarks;  
   
  //替换开学日期等内容  
  foreach(   String   s   in   bmsComm)    
  {  
  this.replace(   bms,   s,   this.getControlText(   s   )   );  
  }  
   
  dr   =   dsStu.Tables[0].Rows[i];  
   
  //替换学生纪律情况等  
  foreach(   System.Data.DataColumn   dc   in   dsStu.Tables[0].Columns   )  
  {  
  this.replace(   bms,   dc.Caption,   dr[   dc.Caption].ToString()   );  
  }  
   
  //替换成绩  
  int   n   =   1;  
  dv.RowFilter   =   "学号="   +   dr["学号"].ToString();  
  foreach(DataRowView   row   in   dv)  
  {  
  this.replace(   bms,"课程名称"+n.ToString(),row["课程名称"].ToString());  
  this.replace(   bms,"成绩"+n.ToString(),row["成绩"].ToString());  
  n++;  
  }  
   
  //使用默认打印机打印文档  
  //C#不提供默认参数真是麻烦  
  doc.PrintOut(   ref   missing,ref   missing,ref   missing,ref   missing,ref   missing,ref   missing,  
  ref   missing,ref   missing,ref   missing,ref   missing,ref   missing,ref   missing,ref   missing,  
  ref   missing,ref   missing,ref   missing,ref   missing,ref   missing);  
   
  //关闭文档而不保存  
  object   SaveChanges     =   Word.WdSaveOptions.wdDoNotSaveChanges;  
  missing   =   System.Reflection.Missing.Value;  
  doc.Close(   ref   SaveChanges,   ref   missing,   ref   missing);  
  }  
  }  
  }  
   
  MARKTop

3 楼tangsailei(line)回复于 2006-03-22 08:47:14 得分 0

谢谢大哥,这个问题还是没有解决,不过你给我代码对我还是挺有帮助的.Top

4 楼earthgoshawk(追求)回复于 2006-03-22 10:48:23 得分 10

替换语句换成这个试试  
  ojbect   name   ="PrintCopySEGN";  
  rng   =   word.ActiveDocument.Bookmarks. get_Item(ref   name).Range;  
  rng.Text   =   "Hello";  
  range   =   rng;  
  word.ActiveDocument.Bookmarks.Add("bookMk1",   ref   range);  
  Top

相关问题

  • 如何在c#中操作word书签?
  • .net操作word
  • asp word 书签 的问题?
  • .net操作word模板,请教
  • java操作word
  • vba如何判别WORD中书签的个数?如何遍历某个书签?
  • VC++.net中操作word的简单问题
  • 各位高手帮帮忙,关于.net对word和excel操作
  • 书签??
  • 关于word书签的问题,急急急!!!

关键词

  • word
  • bm
  • doc

得分解答快速导航

  • 帖主:tangsailei
  • 20011521
  • earthgoshawk

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo