Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520321
  • 博文数量: 60
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 507
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-14 19:15
文章分类

全部博文(60)

文章存档

2012年(1)

2011年(7)

2010年(52)

我的朋友

分类: C/C++

2010-07-12 14:09:11

三、光标移动

  1. //移动光标  
  2.  //光标下移3行 上移3行  
  3.             object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;  
  4.             object count = 3;  
  5.             WApp.Selection.MoveEnd(ref unit,ref count);  
  6.             WApp.Selection.MoveUp(ref unit, ref count, ref missing);  
  7.   
  8. WApp.Selection.Tables[1].Cell(1, 1).Select();  
  9. //unit对象定义  
  10. object  unith = Microsoft.Office.Interop.Word.WdUnits.wdRow;//表格行方式  
  11.             object extend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;/**////extend对光标移动区域进行扩展选择  
  12.             object unitu = Microsoft.Office.Interop.Word.WdUnits.wdLine;//文档行方式,可以看成表格一行.不过和wdRow有区别  
  13.             object unitp = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;//段落方式,对于表格可以选择到表格行后的换车符,对于跨行合并的行选择,我能找到的最简单方式  
  14.             object count=1;//光标移动量  

下面代码演示对于存在合并单元格的选择操作.合并单元格的选择问题一直是word的bug.部分object对象参照上面代码

 

 上面这个是表格合并样式.要如何才能选择2行标题栏尼.看下面代码

  1. //定位到表格第1单元格  
  2. WApp.Selection.Tables[1].Cell(1, 1).Select();  
  3. //定位到第1个单元格第1个字符前            
  4. WApp.Selection.HomeKey(ref unith, ref missing);  
  5. //扩展到行尾,选择表第1行              
  6. WApp.Selection.EndKey(ref unith, ref extend);  
  7. //定义表格标题的行数量,titlerow为参数              
  8. object strtitlerow=titlerow-1;  
  9. //移动光标选择第1行的末尾段落标记              
  10. WApp.Selection.MoveDown(ref unitp, ref count, ref extend);  
  11. //选择下一行,因为合并的原因,如表格标题最后列是合并,只选择了2行的部分  
  12.             WApp.Selection.MoveDown(ref unitu, ref strtitlerow, ref extend);  
  13. //扩展到该行的末端,保证合并行能全部选择到  
  14.             WApp.Selection.EndKey(ref unith, ref extend);  
  15. //复制选择内容到剪贴板  
  16.             WApp.Selection.Copy();  
  17. //下面是移动光标到任何位置并粘贴内容.我程序中目的是到表格换页的时候自动插入下一页的表头.  
  18.             WApp.Selection.Tables[1].Cell(System.Convert.ToInt32(strRownum), 1).Select();  
  19.             WApp.Selection.HomeKey(ref unith, ref missing);  
  20.             WApp.Selection.Paste();  

四、段落格式设定

  1. //段落格式设定  
  2.             WApp.Selection.ParagraphFormat.LeftIndent = WApp.CentimetersToPoints(float.Parse("0"));//左缩进  
  3.             WApp.Selection.ParagraphFormat.RightIndent = WApp.CentimetersToPoints(float.Parse("0"));//右缩进  
  4.             WApp.Selection.ParagraphFormat.SpaceBefore =float.Parse("0");//段前间距  
  5.             WApp.Selection.ParagraphFormat.SpaceBeforeAuto =0;//  
  6.             WApp.Selection.ParagraphFormat.SpaceAfter = float.Parse("0");//段后间距  
  7.             WApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;//  
  8.             WApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距  
  9.             WApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端对齐  
  10.             WApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制  
  11.             WApp.Selection.ParagraphFormat.KeepWithNext = 0;//与下段同页  
  12.             WApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分页  
  13.             WApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分页  
  14.             WApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行号  
  15.             WApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字  
  16.             WApp.Selection.ParagraphFormat.FirstLineIndent = WApp.CentimetersToPoints(float.Parse("0"));//首行缩进  
  17.             WApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText;  
  18.             WApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse("0");  
  19.             WApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse("0");  
  20.             WApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse("0");  
  21.             WApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse("0");  
  22.             WApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse("0");  
  23.             WApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1;  
  24.             WApp.Selection.ParagraphFormat.DisableLineHeightGrid =0;  
  25.             WApp.Selection.ParagraphFormat.FarEastLineBreakControl =1;  
  26.             WApp.Selection.ParagraphFormat.WordWrap = 1;  
  27.             WApp.Selection.ParagraphFormat.HangingPunctuation = 1;  
  28.             WApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0;  
  29.             WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1;  
  30.             WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1;  
  31.             WApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;  


阅读(2090) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-22 11:52:30

学习了,支持!