很难,很变态--关于用c#操作word里的shapes

WUMAOZHIFU 2008-07-16 12:40:07
用c#操作word里的shapes怎么这么难呢?我以前用别的语言搞OLE,就是doc.shapes[i]就可以嘛,可是在c#里就是不行!我想遍历Shapes中的shape,取出它们中的文本,就是没法搞,各位大侠帮帮忙!
...全文
351 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsoft 2012-09-27
  • 打赏
  • 举报
回复
mark一下,可能会用到
WUMAOZHIFU 2008-07-16
  • 打赏
  • 举报
回复
foreach (Shape shapex in myWordDoc.Shapes)
{
str = shapex.TextFrame.TextRange.Text;
Page.RegisterStartupScript("", "<script language='javascript'>alert('"+str+"');</script>");
}

这个语句,也不说出错,就是执行的时候没有任何动静!明明我myWordDoc.Shapes.Count有3个,可是只循环一遍就完了,而且也不给我显示!如果用str="fffffff";就可以显示,但只循环一次!这还讲不讲道理了?


nopole 2008-07-16
  • 打赏
  • 举报
回复
帮顶
luckyboy101 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lydiablo 的回复:]
就是啊,.NET里传引用 需要+ref,重写方法还得声明虚方法和标注重写!麻烦!!
[/Quote]
lydiablo 2008-07-16
  • 打赏
  • 举报
回复
就是啊,.NET里传引用 需要+ref,重写方法还得声明虚方法和标注重写!麻烦!!
aaajedll 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 loverdotnet 的回复:]
mark
[/Quote]
loverdotnet 2008-07-16
  • 打赏
  • 举报
回复
mark
安宁 2008-07-16
  • 打赏
  • 举报
回复
mark一下..
atlasroben 2008-07-16
  • 打赏
  • 举报
回复
其实...我想说,vba的时候用vb.net写更好吧- -#
WUMAOZHIFU 2008-07-16
  • 打赏
  • 举报
回复
这样更好:

object oMissing = System.Reflection.Missing.Value;
string str;
foreach (Shape shapex in myWordDoc.Shapes)
{
shapex.Select(ref oMissing);
str = myWordApp.Selection.ShapeRange.TextFrame.TextRange.Text.Trim();
}
kofkyo 2008-07-16
  • 打赏
  • 举报
回复
留个记号吧
虽然不知道啥时候能用到
谢谢楼主分享!
WUMAOZHIFU 2008-07-16
  • 打赏
  • 举报
回复
解决了!

string str;
for (int i = 1; i <=myWordDoc.Shapes.Count; i++)
{
myWordDoc.Shapes.get_Item(ref oMiss).Select(ref oMiss);
str=myWordApp.Selection.ShapeRange.TextFrame.TextRange.Text.Trim();
}

这样就可以,不过myWordDoc.Shapes.get_Item(ref oMiss).Select(ref oMiss);确实很变态!明明就是i,非要变成 ref oMiss!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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