如何找到Word中某个字符或者汉字的range对象的位置

shiter
人工智能领域优质创作者
博客专家认证
2017-01-15 08:43:09
如题,用Wordapp.selection. inlineshap. Addpicture
怎么插入这个图片到,Word中比如标题一之前

找到某个地方字符,返回他的range


http://bbs.csdn.net/topics/392076569


两个帖子分加起来!

期待大牛
...全文
475 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2017-01-16
  • 打赏
  • 举报
回复
引用 5 楼 stherix 的回复:
想到个办法 就是用查找的办法,下面是VBA宏 Selection.Find.ClearFormatting With Selection.Find .Text = "需要查找的文字" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute 就可以对 Selection.Range进行操作了
高手,我这个是用python调用com接口, 似乎可以用bookmark实现: def insertpicture(bookmark,picturepath): if WordApp.ActiveDocument.BookMarks.Exists(bookmark): WordApp.ActiveDocument.BookMarks(bookmark).Select() WordApp.Selection.InlineShapes.AddPicture(picturepath)
stherix 2017-01-15
  • 打赏
  • 举报
回复
想到个办法 就是用查找的办法,下面是VBA宏 Selection.Find.ClearFormatting With Selection.Find .Text = "需要查找的文字" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute 就可以对 Selection.Range进行操作了
stherix 2017-01-15
  • 打赏
  • 举报
回复
引用 3 楼 wangyaninglm 的回复:
[quote=引用 2 楼 stherix 的回复:] 上面应该为 var range=WordApp.ActiveDocument.Paragraphs[i].Range;
如果不遍历呢?这个字符我确定是唯一的,有没有可以查找的[/quote] 从一个字符反推Range估计只能遍历 如果只是要从一个自己定义的word模版,插入数据和图片生成最终报表 可以试试用其他方法实现,比如在那个位置插入一个书签,然后遍历书签就快很多,当然用空无边框表格也可以
shiter 2017-01-15
  • 打赏
  • 举报
回复
引用 2 楼 stherix 的回复:
上面应该为 var range=WordApp.ActiveDocument.Paragraphs[i].Range;
如果不遍历呢?这个字符我确定是唯一的,有没有可以查找的
stherix 2017-01-15
  • 打赏
  • 举报
回复
上面应该为 var range=WordApp.ActiveDocument.Paragraphs[i].Range;
stherix 2017-01-15
  • 打赏
  • 举报
回复
遍历ActiveDocument内所有的Paragraphs的Range, 取Text for(var i=1;i<=WordApp.ActiveDocument.Paragraphs.Count;i++) { var range=WordApp.ActiveDocument.Paragraphs[i]; //range.Text } 判断是否为你需要的标题就行吧,然后 object LinkToFile = false; object SaveWithDocument = true; object Anchor = xxx.Range; ActiveDocument.InlineShapes.AddPicture(imageFilePath, ref LinkToFile, ref SaveWithDocument, ref Anchor); 不过office COM接口的效率很低,速度可能比较慢
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象的年份(四位数字)。setHours() 设置 Date 对象的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象的分钟 (0 ~ 59)。setMonth() 设置 Date 对象月份 (0 ~ 11)。setSeconds() 设置 Date 对象的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧