C# 操作word(转)

来源:互联网 发布:中国域名总数 编辑:程序博客网 时间:2024/06/06 02:41
C# word类库(转)
#region word文档设置及获取光标位置
/**//// <summary>
/// word文档设置及获取光标位置
/// </summary>
public static void WordSet()
{
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Application WordApp;
Microsoft.Office.Interop.Word.Document WordDoc;
WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

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

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

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

            #endregion

            #region 获取光标位置
/**/////get_Information
WordApp.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 属性设置的当前的放大百分比。

            #endregion

原创粉丝点击