一、word文档表格操作、分页及换行

//合并单元格
table.Cell(2, 2).Merge(table.Cell(2, 3));

//单元格分离

object Rownum = 2;
object Columnnum = 2;
table.Cell(2, 2).Split(ref Rownum, ref Columnnum);

//单元格对齐方式
WApp.Selection.Cells.VerticalAlignment =Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

//插入表行
table.Rows.Add(ref missing);

//分页 object ib = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
WApp.Selection.InsertBreak(ref ib);

//换行
WApp.Selection.TypeParagraph();

二、word文档设置

WApp.ActiveDocument.PageSetup.LineNumbering.Active =0;//行编号
WApp.ActiveDocument.PageSetup.Orientation =Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait;//页面方向
WApp.ActiveDocument.PageSetup.TopMargin =WApp.CentimetersToPoints(float.Parse("2.54"));//上页边距
WApp.ActiveDocument.PageSetup.BottomMargin = WApp.CentimetersToPoints(float.Parse("2.54"));//下页边距
WApp.ActiveDocument.PageSetup.LeftMargin = WApp.CentimetersToPoints(float.Parse("3.17"));//左页边距
WApp.ActiveDocument.PageSetup.RightMargin = WApp.CentimetersToPoints(float.Parse("3.17"));//右页边距
WApp.ActiveDocument.PageSetup.Gutter = WApp.CentimetersToPoints(float.Parse("0"));//装订线位置
WApp.ActiveDocument.PageSetup.HeaderDistance = WApp.CentimetersToPoints(float.Parse("1.5"));//页眉
WApp.ActiveDocument.PageSetup.FooterDistance = WApp.CentimetersToPoints(float.Parse("1.75"));//页脚
WApp.ActiveDocument.PageSetup.PageWidth = WApp.CentimetersToPoints(float.Parse("21"));//纸张宽度
WApp.ActiveDocument.PageSetup.PageHeight = WApp.CentimetersToPoints(float.Parse("29.7"));//纸张高度
WApp.ActiveDocument.PageSetup.FirstPageTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//纸张来源
WApp.ActiveDocument.PageSetup.OtherPagesTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//纸张来源
WApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//节的起始位置:新建页
WApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = 0;//页眉页脚-奇偶页不同
WApp.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = 0;//页眉页脚-首页不同
WApp.ActiveDocument.PageSetup.VerticalAlignment = Microsoft.Office.Interop.Word.WdVerticalAlignment.wdAlignVerticalTop;//页 面垂直对齐方式
WApp.ActiveDocument.PageSetup.SuppressEndnotes =0;//不隐藏尾注
WApp.ActiveDocument.PageSetup.MirrorMargins = 0;//不设置首页的内外边距
WApp.ActiveDocument.PageSetup.TwoPagesOnOne = false;//不双面打印
WApp.ActiveDocument.PageSetup.BookFoldPrinting =false;//不设置手动双面正面打印
WApp.ActiveDocument.PageSetup.BookFoldRevPrinting =false;//不设置手动双面背面打印
WApp.ActiveDocument.PageSetup.BookFoldPrintingSheets = 1;//打印默认份数
WApp.ActiveDocument.PageSetup.GutterPos = Microsoft.Office.Interop.Word.WdGutterStyle.wdGutterPosLeft;//装订线位于左侧
WApp.ActiveDocument.PageSetup.LinesPage = 40;//默认页行数量
WApp.ActiveDocument.PageSetup.LayoutMode = Microsoft.Office.Interop.Word.WdLayoutMode.wdLayoutModeLineGrid;//版式模式为“只指定行网格”

三、光标移动

//移动光标
//光标下移3行 上移3行
object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
object count = 3;
WApp.Selection.MoveEnd(ref unit,ref count);
WApp.Selection.MoveUp(ref unit, ref count, ref missing);

//Microsoft.Office.Interop.Word.WdUnits说明
//wdCell A cell.
//wdCharacter A character.
//wdCharacterFormatting Character formatting.
//wdColumn A column.
//wdItem The selected item.
//wdLine A line. //行
//wdParagraph A paragraph.
//wdParagraphFormatting Paragraph formatting.
//wdRow A row.
//wdScreen The screen dimensions.
//wdSection A section.
//wdSentence A sentence.
//wdStory A story.
//wdTable A table.
//wdWindow A window.
//wdWord A word.

//录制的vb宏
// ,移动光标至当前行首
// Selection.HomeKey unit:=wdLine
// '移动光标至当前行尾
// Selection.EndKey unit:=wdLine
// '选择从光标至当前行首的内容
// Selection.HomeKey unit:=wdLine, Extend:=wdExtend
// '选择从光标至当前行尾的内容
// Selection.EndKey unit:=wdLine, Extend:=wdExtend
// '选择当前行
// Selection.HomeKey unit:=wdLine
// Selection.EndKey unit:=wdLine, Extend:=wdExtend
// '移动光标至文档开始
// Selection.HomeKey unit:=wdStory
// '移动光标至文档结尾
// Selection.EndKey unit:=wdStory
// '选择从光标至文档开始的内容
// Selection.HomeKey unit:=wdStory, Extend:=wdExtend
// '选择从光标至文档结尾的内容
// Selection.EndKey unit:=wdStory, Extend:=wdExtend
// '选择文档全部内容(从WholeStory可猜出Story应是当前文档的意思)
// Selection.WholeStory
// '移动光标至当前段落的开始
// Selection.MoveUp unit:=wdParagraph
// '移动光标至当前段落的结尾
// Selection.MoveDown unit:=wdParagraph
// '选择从光标至当前段落开始的内容
// Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
// '选择从光标至当前段落结尾的内容
// Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
// '选择光标所在段落的内容
// Selection.MoveUp unit:=wdParagraph
// Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
// '显示选择区的开始与结束的位置,注意:文档第1个字符的位置是0
// MsgBox ("第" & Selection.Start & "个字符至第" & Selection.End & "个字符")
// '删除当前行
// Selection.HomeKey unit:=wdLine
// Selection.EndKey unit:=wdLine, Extend:=wdExtend
// Selection.Delete
// '删除当前段落
// Selection.MoveUp unit:=wdParagraph
// Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
// Selection.Delete
//表格的光标移动
//光标到当前光标所在表格的地单元格
WApp.Selection.Tables[1].Cell(1, 1).Select();
//unit对象定义
object unith = Microsoft.Office.Interop.Word.WdUnits.wdRow;//表格行方式
object extend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;/**////extend对光标移动区域进行扩展选择
object unitu = Microsoft.Office.Interop.Word.WdUnits.wdLine;//文档行方式,可以看成表格一行.不过和wdRow有区别
object unitp = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;//段落方式,对于表格可以选择到表格行后的换车符,对于跨行合并的行选择,我能找到的最简单方式
object count=1;//光标移动量
下面代码演示对于存在合并单元格的选择操作.合并单元格的选择问题一直是word的bug.部分object对象参照上面代码
上面这个是表格合并样式.要如何才能选择2行标题栏尼.看下面代码
//定位到表格第1单元格
WApp.Selection.Tables[1].Cell(1, 1).Select();
//定位到第1个单元格第1个字符前
WApp.Selection.HomeKey(ref unith, ref missing);
//扩展到行尾,选择表第1行
WApp.Selection.EndKey(ref unith, ref extend);
//定义表格标题的行数量,titlerow为参数
object strtitlerow=titlerow-1;
//移动光标选择第1行的末尾段落标记
WApp.Selection.MoveDown(ref unitp, ref count, ref extend);
//选择下一行,因为合并的原因,如表格标题最后列是合并,只选择了2行的部分
WApp.Selection.MoveDown(ref unitu, ref strtitlerow, ref extend);
//扩展到该行的末端,保证合并行能全部选择到
WApp.Selection.EndKey(ref unith, ref extend);
//复制选择内容到剪贴板
WApp.Selection.Copy();
//下面是移动光标到任何位置并粘贴内容.我程序中目的是到表格换页的时候自动插入下一页的表头.
WApp.Selection.Tables[1].Cell(System.Convert.ToInt32(strRownum), 1).Select();
WApp.Selection.HomeKey(ref unith, ref missing);
WApp.Selection.Paste();

四、段落格式设定
//段落格式设定
WApp.Selection.ParagraphFormat.LeftIndent = WApp.CentimetersToPoints(float.Parse("0"));//左缩进
WApp.Selection.ParagraphFormat.RightIndent = WApp.CentimetersToPoints(float.Parse("0"));//右缩进
WApp.Selection.ParagraphFormat.SpaceBefore =float.Parse("0");//段前间距
WApp.Selection.ParagraphFormat.SpaceBeforeAuto =0;//
WApp.Selection.ParagraphFormat.SpaceAfter = float.Parse("0");//段后间距
WApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;//
WApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距
WApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端对齐
WApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制
WApp.Selection.ParagraphFormat.KeepWithNext = 0;//与下段同页
WApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分页
WApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分页
WApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行号
WApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字
WApp.Selection.ParagraphFormat.FirstLineIndent = WApp.CentimetersToPoints(float.Parse("0"));//首行缩进
WApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText;
WApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse("0");
WApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse("0");
WApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse("0");
WApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse("0");
WApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse("0");
WApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1;
WApp.Selection.ParagraphFormat.DisableLineHeightGrid =0;
WApp.Selection.ParagraphFormat.FarEastLineBreakControl =1;
WApp.Selection.ParagraphFormat.WordWrap = 1;
WApp.Selection.ParagraphFormat.HangingPunctuation = 1;
WApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0;
WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1;
WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1;
WApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;

五、字体格式设定
//字体格式设定
WApp.Selection.Font.NameFarEast = "华文中宋";
WApp.Selection.Font.NameAscii = "Times New Roman";
WApp.Selection.Font.NameOther = "Times New Roman";
WApp.Selection.Font.Name = "宋体";
WApp.Selection.Font.Size = float.Parse("14");
WApp.Selection.Font.Bold = 0;
WApp.Selection.Font.Italic = 0;
WApp.Selection.Font.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone;
WApp.Selection.Font.UnderlineColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
WApp.Selection.Font.StrikeThrough =0;//删除线
WApp.Selection.Font.DoubleStrikeThrough = 0;//双删除线
WApp.Selection.Font.Outline =0;//空心
WApp.Selection.Font.Emboss = 0;//阳文
WApp.Selection.Font.Shadow = 0;//阴影
WApp.Selection.Font.Hidden = 0;//隐藏文字
WApp.Selection.Font.SmallCaps = 0;//小型大写字母
WApp.Selection.Font.AllCaps = 0;//全部大写字母
WApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
WApp.Selection.Font.Engrave = 0;//阴文
WApp.Selection.Font.Superscript = 0;//上标
WApp.Selection.Font.Subscript = 0;//下标
WApp.Selection.Font.Spacing = float.Parse("0");//字符间距
WApp.Selection.Font.Scaling = 100;//字符缩放
WApp.Selection.Font.Position = 0;//位置
WApp.Selection.Font.Kerning = float.Parse("1");//字体间距调整
WApp.Selection.Font.Animation = Microsoft.Office.Interop.Word.WdAnimation.wdAnimationNone;//文字效果
WApp.Selection.Font.DisableCharacterSpaceGrid =false;
WApp.Selection.Font.EmphasisMark = Microsoft.Office.Interop.Word.WdEmphasisMark.wdEmphasisMarkNone;

六、获取光标位置
有了这个和上面内容,相信大家对word文档的控制应该到了随心所欲的地步,爽啊
获取的c#语法 //get_Information
Selection.get_Information(WdInformation.wdActiveEndPageNumber)
//关于行号-页号-列号-位置
//information 属性
//返回有关指定的所选内容或区域的信息。variant 类型,只读。
//expression.information(type)
//expression 必需。该表达式返回一个 range 或 selection 对象。
//type long 类型,必需。需要返回的信息。可取下列 wdinformation 常量之一:
//wdactiveendadjustedpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾。如果设置了一个起始页码,并对页码进行了手工调整,则返回调整过的页码。
//wdactiveendpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾,页码从文档的开头开始计算而不考虑对页码的任何手工调整。
//wdactiveendsectionnumber 返回节号,在该节中包含了指定的所选内容或区域的活动结尾。
//wdatendofrowmarker 如果指定的所选内容或区域位于表格的行结尾标记处,则本参数返回 true。
//wdcapslock 如果大写字母锁定模式有效,则本参数返回 true。
//wdendofrangecolumnnumber 返回表格列号,在该表格列中包含了指定的所选内容或区域的活动结尾。
//wdendofrangerownumber 返回表格行号,在该表格行包含了指定的所选内容或区域的活动结尾。
//wdfirstcharactercolumnnumber 返回指定的所选内容或区域中第一个字符的位置。如果所选内容或区域是折叠的,则返回所选内容或区域右侧紧接着的字符编号。
//wdfirstcharacterlinenumber 返回所选内容中第一个字符的行号。如果 pagination 属性为 false,或 draft 属性为 true,则返回 - 1。
//wdframeisselected 如果所选内容或区域是一个完整的图文框文本框,则本参数返回 true。
//wdheaderfootertype 返回一个值,该值表明包含了指定的所选内容或区域的页眉或页脚的类型,如下表所示。 值 页眉或页脚的类型
//- 1 无
//0 偶数页页眉
//1 奇数页页眉
//2 偶数页页脚
//3 奇数页页脚
//4 第一个页眉
//5 第一个页脚
//wdhorizontalpositionrelativetopage 返回指定的所选内容或区域的水平位置。该位置是所选内容或区域的左边与页面的左边之间的距离,以磅为单位。如果所选内容或区域不可见,则返回 - 1。
//wdhorizontalpositionrelativetotextboundary 返回指定的所选内容或区域相对于周围最近的正文边界的左边的水平位置,以磅为单位。如果所选内容或区域没有显示在当前屏幕,则本参数返回 - 1。
//wdinclipboard 有关此常量的详细内容,请参阅 microsoft office 98 macintosh 版的语言参考帮助。
//wdincommentpane 如果指定的所选内容或区域位于批注窗格,则返回 true。
//wdinendnote 如果指定的所选内容或区域位于页面视图的尾注区内,或者位于普通视图的尾注窗格中,则本参数返回 true。
//wdinfootnote 如果指定的所选内容或区域位于页面视图的脚注区内,或者位于普通视图的脚注窗格中,则本参数返回 true。
//wdinfootnoteendnotepane 如果指定的所选内容或区域位于页面视图的脚注或尾注区内,或者位于普通视图的脚注或尾注窗格中,则本参数返回 true。详细内容,请参阅前面的 wdinfootnote 和 wdinendnote 的说明。
//wdinheaderfooter 如果指定的所选内容或区域位于页眉或页脚窗格中,或者位于页面视图的页眉或页脚中,则本参数返回 true。
//wdinmasterdocument 如果指定的所选内容或区域位于主控文档中,则本参数返回 true。
//wdinwordmail 返回一个值,该值表明了所选内容或区域的的位置,如下表所示。值 位置
//0 所选内容或区域不在一条电子邮件消息中。
//1 所选内容或区域位于正在发送的电子邮件中。
//2 所选内容或区域位于正在阅读的电子邮件中。
//wdmaximumnumberofcolumns 返回所选内容或区域中任何行的最大表格列数。
//wdmaximumnumberofrows 返回指定的所选内容或区域中表格的最大行数。
//wdnumberofpagesindocument 返回与所选内容或区域相关联的文档的页数。
//wdnumlock 如果 num lock 有效,则本参数返回 true。
//wdovertype 如果改写模式有效,则本参数返回 true。可用 overtype 属性改变改写模式的状态。
//wdreferenceoftype 返回一个值,该值表明所选内容相对于脚注、尾注或批注引用的位置,如下表所示。 值 描述
//— 1 所选内容或区域包含、但不只限定于脚注、尾注或批注引用中。
//0 所选内容或区域不在脚注、尾注或批注引用之前。
//1 所选内容或区域位于脚注引用之前。
//2 所选内容或区域位于尾注引用之前。
//3 所选内容或区域位于批注引用之前。
//wdrevisionmarking 如果修订功能处于活动状态,则本参数返回 true。
//wdselectionmode 返回一个值,该值表明当前的选定模式,如下表所示。 值 选定模式
//0 常规选定
//1 扩展选定
//2 列选定
//wdstartofrangecolumnnumber 返回所选内容或区域的起点所在的表格的列号。
//wdstartofrangerownumber 返回所选内容或区域的起点所在的表格的行号。
//wdverticalpositionrelativetopage 返回所选内容或区域的垂直位置,即所选内容的上边与页面的上边之间的距离,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。
//wdverticalpositionrelativetotextboundary 返回所选内容或区域相对于周围最近的正文边界的上边的垂直位置,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。
//wdwithintable 如果所选内容位于一个表格中,则本参数返回 true。
//wdzoompercentage 返回由 percentage 属性设置的当前的放大百分比。

C# Word常用操作(转)格式设置的更多相关文章

  1. Fiddler之常用操作(过滤器设置,代理设置,手机抓包设置,手机代理配置)

    记录下,工作中常用的一些设置和操作~ 1.过滤“脏”请求 两个下拉框的名词解释: A.内外网过滤 No Zone Filter:不分区域过滤(内网外网都显示) Show only Intranet H ...

  2. word常用操作

    [Word2003文档添加个行号] 参考:http://jingyan.baidu.com/article/e9fb46e1ca1d3c7520f7666f.html#333225-tsina-1-5 ...

  3. Word常用操作笔记

    总忘,在这记一下,以下以WPS为例,WORD大同小异,别看网上那些乱写的,就哥这个稳定好使: 1. 在指定页面及其后开始插入页码 2. 修改页码中的总页数 -> 选中总页数的域 -> SH ...

  4. 设置word里的代码格式,使之有底纹的效果

    目录 1    实现效果:    1 2    怎么才能在word里实现这样的显示?    1 如何设置word里的代码格式,使之有底纹的效果    2     实现效果: 怎么才能在word里实现这 ...

  5. linux下关于gz和bz2压缩格式的常用操作技巧

    .gz和.bz2都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件..bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间. 也就是说同一个文件,压缩 ...

  6. 使用EndNote在Word中插入参考文献的格式设置

    endnote其实自带了很多参考文献格式的样式,如下图,但往往跟我们要使用的会有所出入,本文主要介绍的就是设置自定义endnote参考文献格式,以endnote X6和word2003为例,其它版本以 ...

  7. Ubuntu安装设置nginx和nohup常用操作

    nginx安装 Ubuntu直接从常规源中安装 apt-get install nginx 安装的目录 配置文件:/etc/nginx/ 主程序文件:/usr/sbin/nginx Web默认目录:/ ...

  8. 设置快捷键 让word轻松实现无格式粘贴

    设置快捷键 让word轻松实现无格式粘贴使用word时,我们经常会遇到需要将网页上的内容复制到word进行编辑的情况,但是通常这样复制进来的内容都是带有格式的,编辑起来非常不便.虽然我们可以利用“记事 ...

  9. java操作Excel的poi 格式设置

    格式设置 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi. ...

随机推荐

  1. [BZOJ 1042] [HAOI2008] 硬币购物 【DP + 容斥】

    题目链接:BZOJ - 1042 题目分析 首先 Orz Hzwer ,代码题解都是看的他的 blog. 这道题首先使用DP预处理,先求出,在不考虑每种硬币个数的限制的情况下,每个钱数有多少种拼凑方案 ...

  2. 45 Useful JavaScript Tips, Tricks and Best Practices(有用的JavaScript技巧,技巧和最佳实践)

    As you know, JavaScript is the number one programming language in the world, the language of the web ...

  3. [Forward]Use the SharePoint My Tasks Web Part outside of My Sites

    from http://yalla.itgroove.net/2014/04/use-sharepoint-tasks-web-part-outside-sites/ Use the SharePoi ...

  4. Area

    http://poj.org/problem?id=1265 #include<cstdio> #include<istream> #include<algorithm& ...

  5. C++学习之容器的摸索

    初学容器,容易犯错的地方 1.vector,list和deque都是顺序容器.其中vector和deque都可以通过下标访问,而list不能 2. 容器的begin和end操作 c.begin()返回 ...

  6. awk合并文件一例

    群里的朋友求助: $ cat file1a 1 2 3b 2 3 4c 3 4 5 $ cat file2d 你b 好c 吗 合并两个文件,需要实现: a 1 2 3b 2 3 4 好c 3 4 5 ...

  7. 线段树(倒序操作):POJ 2828 Buy Tickets

    Buy Tickets   Description Railway tickets were difficult to buy around the Lunar New Year in China, ...

  8. 动态规划(背包问题):POJ 1742 Coins

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 32955   Accepted: 11199 Descripti ...

  9. HDOJ(HDU) 2135 Rolling table

    Problem Description After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET ...

  10. ssh非交互式密码输入

    ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登 ...