精华内容
下载资源
问答
  • Word组件对象模型

    千次阅读 2014-10-10 11:25:15
    Word组件对象模型  Microsoft Office Word 2003 对象是按层次顺序排列的,层次结构顶端的两个主类是 Application 类和 Document 类。这两个类非常重要,因为在大部分时间里,您要么是在使用 Word 应用程序本身...

    1  Word组件对象模型   
    Microsoft Office Word 2003 对象是按层次顺序排列的,层次结构顶端的两个主类是 Application 类和 Document 类。这两个类非常重要,因为在大部分时间里,您要么是在使用 Word 应用程序本身,要么是以某种方式处理 Word 文档。Word 对象模型严格遵循用户界面。Application 对象提供整个应用程序的包装,每个 Document 对象表示单个 Word 文档。这些对象各自都有很多方法和属性,您可以使用这些方法和属性操作对象或与对象交互。
    Application 对象。Application 对象表示 Word 应用程序,是其他所有对象的父级。它的所有成员通常作为一个整体应用于 Word。可以使用该对象的属性和方法来控制 Word 环境。
    Document 对象。Document 对象是 Word 编程的中枢。当您打开文档或创建新文档时,就创建了新的 Document 对象,该对象被添加到 Word 的 Documents 集合中。焦点所在的文档叫做活动文档,由 Application 对象的 ActiveDocument 属性表示。
    Selection 对象。Selection 对象表示当前选择的区域,Selection 对象只存在一个。在 Word 用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示文本,然后应用格式设置。Selection 对象始终存在于文档中。如果未选中任何对象,它表示插入点。此外,该对象还可以表示多个不连续的文本块。
    Range 对象。Range 对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。Range 对象的数量并不局限于一个。您可以在同一文档中定义多个 Range 对象。
    Bookmark 对象。Bookmark 对象与 Range 对象类似,它也表示文档中的一个连续区域,并具有一个起始位置和一个结束位置。书签用于在文档中标记一个位置,或者用作文档中的文本容器。Bookmark 对象可以小到只有一个插入点,也可以大到整篇文档。您还可以在文档中定义多个书签。
    对于Microsoft Office Word 2003,通常可以在..//Microsoft Office//OFFICE11// MSWORD.OLB获得相关接口类。常用的有_Application, Documents, _Document, Selection, Range等。此外,用于设置字体的_Font,段落格式的_ParagraphFormat,表格对象Tables及Table,目录对象TablesOfContents及TableOfContents等等也是常用的。

    2  Word启动与退出     
    使用Application 对象,关联接口、释放接口。具体代码如下:
    _Application theExcelApp;
    theExcelApp.CreateDispatch("word.application", NULL); //关联接口
    退出
    theExcelApp.Quit();  退出
    theExcelApp.ReleaseDispatch();  //释放接口

    3   Word表格操作    
    使用单文档对象_Document,表格集合对象Tables,表格对象Table,行对象Rows,单元格对象Cell,列集合对象Columns,列对象Column,区域对象Range等可对表格进行操作。
    插入表格。使用_Document:: GetTables返回一个Tables对象,使用Tables::Add在指定区域插入一个表格。
    获取列对象。使用Table:: GetColumns返回一个Columns对象,使用Columns:: Item返回一个Column对象。从而可以列为对象进行操作。
    单元格插入文字。使用Table:: Cell返回Cell对象,使用Cell:: GetRange返回区域对象,或者使用Cell::Select使得表格获得输入焦点,从而进行编辑。

    4  文字转换为表格    
    当需要把一个记事本(*.txt)文件转换为表格插入到Word文档中。最快捷的作法是将txt内容粘贴到word文档中,然后将内容转化为表格。步骤如下:
    首先确定一个插入txt内容的Range对象。
    使用Range::InsertFile函数。InsertFile函数声明为:
       void Range::InsertFile(LPCTSTR FileName, VARIANT* Range, VARIANT* ConfirmConversions, VARIANT* Link, VARIANT* Attachment)
    参数说明如下:
    FileName 插入文本路径。
    Range 插入文本内容的Range对象,设为NULL
    ConfirmConversions 确认转换,设为FALSE
    Link 链接到文件,设为FALSE
    Attachment 链接行为,设为FALSE
    使用Range:: ConvertToTable转换文字为表格,返回一个Table对象。ConvertToTable函数声明为:
    LPDISPATCH Range::ConvertToTable(VARIANT* Separator, VARIANT* NumRows, VARIANT* NumColumns, VARIANT* InitialColumnWidth, VARIANT* Format, VARIANT* ApplyBorders, VARIANT* ApplyShading, VARIANT* ApplyFont, VARIANT* ApplyColor, VARIANT* ApplyHeadingRows, VARIANT* ApplyLastRow, VARIANT* ApplyFirstColumn, VARIANT* ApplyLastColumn, VARIANT* AutoFit, VARIANT*, VARIANT* DefaultTableBehavior)
    参数说明如下:
    Separator 分隔符。通常设为1,即设置制表符为分隔符(如果采用其他分隔符,请适当修改)
    NumRows 表格行数目
    NumColumns 列数目
    InitialColumnWidth,Format,ApplyBorders,ApplyShading,ApplyFont,ApplyColor,ApplyBorders,ApplyFirstColumn,ApplyLastColumn, DefaultTableBehavior,均可设为VarOpt,由系统默认
    AutoFit 自动调整。设为0
    也可利用Selection对象代替Range对象进行文本转换表格,调用函数与Range对象的函数名称一致,参数略有出入。

    5 设置页码       
    通常我们需要在任意指定页开始插入新页码。网上很多文章都是只能在第二页开始设置。以下介绍我通过观察VBA宏代码得到的一种插入页码的方法(实现方法当然可能不止一种,我曾在网上看到曾有一篇文章提及这个问题,但是他的代码不能正常运行,估计是作者发布文章的时候有些不小心有遗漏)。要点在于插入分节符和取消,并且要注意返回当前节。步骤如下:
    0 在前一页使用Selection::InsertBreak插入分节符,参数值为2(参数值7为分页符)。
    1 使用_Document::GetActiveWindow返回窗口Window对象。
    2 使用Window:: GetActivePane返回当前活动Pane窗格对象
    3 使用Pane::GetView返回View视图对象,View::SetType(long(3))。
    4 使用SetSeekView(long(10))获得页眉页脚视图。
    5 使用Selection::GetHeaderFooter()获得页眉页脚对象HeaderFooter。
    6 使用HeaderFooter::SetLinkToPrevious(FALSE)取消“与上一节相同”。
    7此时输入较点Selction停留在上一节的页脚处。使用View::SetSeekView(long(0))将返回到当前节的文字视图中。
    8 使用View::SetSeekView(long(10))再次获得本节的页眉页脚视图。
    9 使用Selection::GetHeaderFooter()获得页眉页脚对象HeaderFooter。
    10 使用HeaderFooter::GetRange获得Range对象rangeheadfoot。
    11 使用Range:: GetFields获得Fields对象。
    12使用Fields:: Add获得Field对象,具体参数赋值为Add(rangeheadfoot,COleVariant(short(33)),varOpt,varOpt)。
    13 使用Fields::GetPageNumbers()获得PageNumbers页码对象。
    14使用PageNumbers对象的方法设置属性。特别要设置SetStartingNumber(long(1))。
    PageNumbers对象的其他设置可参考如下:
    SetNumberStyle(long(0));
     SetHeadingLevelForChapter(long(0));
     SetIncludeChapterNumber(FALSE);
     SetChapterPageSeparator(long(0));
     SetRestartNumberingAtSection(true);
    15 通过Range对象rangeheadfoot设置页码居中及文字大小。
    16 结束页码设置。使用View::SetSeekView(long(0))返回到文字视图。

    6 插入Excel图表    
    在Excel生成图表后,Word可将其嵌入文档中并改变其格式。用户可以通过双击图表对象激活,然后进行类似于Excel环境下的操作。具体操作如下:
    使用Selection:: GetInlineShapes。获得内嵌区域集合对象InlineShapes。
    使用InlineShapes::AddOLEObject插入表格,并获得内嵌区域对象InlineShape。AddOLEObject函数声明为:
    LPDISPATCH AddOLEObject(VARIANT* ClassType, VARIANT* FileName, VARIANT* LinkToFile, VARIANT* DisplayAsIcon, VARIANT* IconFileName, VARIANT* IconIndex, VARIANT* IconLabel, VARIANT* Range)
    参数说明如下:
    ClassType 插入类型,若为Excel对象,设为COleVariant("Excel.Sheet.8")。
    FileName 文件路径。
    LinkToFile 链接到文件。设为FALSE。
    DisplayAsIcon 显示为图标,设为FALSE。
    IconFileName 文件名图标,设为VarOpt。
    IconIndex 索引图标,设为VarOpt。
    IconLabel 标签图标,设为VarOpt。
    Range 区域,设为VarOpt。
    使用InlineShape的方法SetHeight、SetWidth调整大小。这些方法的参数值都是打印格式下的英磅数值。

    7 生成目录     
    单文档对象_Document,目录集合对象TablesOfContents,目录对象TableOfContents及Range对象。操作流程如下:
    使用_Document:: GetTablesOfContents返回TablesOfContents对象。
    TablesOfContents::Add返回TableOfContents对象。
    LPDISPATCH TablesOfContents::Add(LPDISPATCH Range, VARIANT* UseHeadingStyles, VARIANT* UpperHeadingLevel, VARIANT* LowerHeadingLevel, VARIANT* UseFields, VARIANT* TableID, VARIANT* RightAlignPageNumbers, VARIANT* IncludePageNumbers, VARIANT* AddedStyles, VARIANT* UseHyperlinks, VARIANT* HidePageNumbersInWeb, VARIANT* UseOutlineLevels)
    参数说明如下:
    Range 插入目录的Range对象。通常目录是文档生成结束时进行插入的,因此必须事先指定插入目录的区域Range对象。
    UseHeadingStyles 使用制表符前导符,设为TRUE
    UpperHeadingLevel 顶级目录,通常设为1
    LowerHeadingLevel 底级目录,根据需要赋值
    UseFields 使用区域,设为FALSE
    TableID 目录索引,以1起始
    RightAlignPageNumbers 页码右对齐,设为TRUE
    IncludePageNumbers 包含页码,
    AddedStyles 增加类型,设为NULL
    UseHyperlinks 使用超链接,设为TRUE
    HidePageNumbersInWeb Web页中隐藏页码,设为TRUE
    UseOutlineLevels 使用大纲级别,设为TRUE
    使用TableOfContents:: GetRange获取区域对象,进行其他例如文字大小控制等操作。
    TableOfContents:: UpdatePageNumbers更新页码

     

    1  Word组件对象模型   
    Microsoft Office Word 2003 对象是按层次顺序排列的,层次结构顶端的两个主类是 Application 类和 Document 类。这两个类非常重要,因为在大部分时间里,您要么是在使用 Word 应用程序本身,要么是以某种方式处理 Word 文档。Word 对象模型严格遵循用户界面。Application 对象提供整个应用程序的包装,每个 Document 对象表示单个 Word 文档。这些对象各自都有很多方法和属性,您可以使用这些方法和属性操作对象或与对象交互。
    Application 对象。Application 对象表示 Word 应用程序,是其他所有对象的父级。它的所有成员通常作为一个整体应用于 Word。可以使用该对象的属性和方法来控制 Word 环境。
    Document 对象。Document 对象是 Word 编程的中枢。当您打开文档或创建新文档时,就创建了新的 Document 对象,该对象被添加到 Word 的 Documents 集合中。焦点所在的文档叫做活动文档,由 Application 对象的 ActiveDocument 属性表示。
    Selection 对象。Selection 对象表示当前选择的区域,Selection 对象只存在一个。在 Word 用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示文本,然后应用格式设置。Selection 对象始终存在于文档中。如果未选中任何对象,它表示插入点。此外,该对象还可以表示多个不连续的文本块。
    Range 对象。Range 对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。Range 对象的数量并不局限于一个。您可以在同一文档中定义多个 Range 对象。
    Bookmark 对象。Bookmark 对象与 Range 对象类似,它也表示文档中的一个连续区域,并具有一个起始位置和一个结束位置。书签用于在文档中标记一个位置,或者用作文档中的文本容器。Bookmark 对象可以小到只有一个插入点,也可以大到整篇文档。您还可以在文档中定义多个书签。
    对于Microsoft Office Word 2003,通常可以在..//Microsoft Office//OFFICE11// MSWORD.OLB获得相关接口类。常用的有_Application, Documents, _Document, Selection, Range等。此外,用于设置字体的_Font,段落格式的_ParagraphFormat,表格对象Tables及Table,目录对象TablesOfContents及TableOfContents等等也是常用的。

    2  Word启动与退出     
    使用Application 对象,关联接口、释放接口。具体代码如下:
    _Application theExcelApp;
    theExcelApp.CreateDispatch("word.application", NULL); //关联接口
    退出
    theExcelApp.Quit();  退出
    theExcelApp.ReleaseDispatch();  //释放接口

    3   Word表格操作    
    使用单文档对象_Document,表格集合对象Tables,表格对象Table,行对象Rows,单元格对象Cell,列集合对象Columns,列对象Column,区域对象Range等可对表格进行操作。
    插入表格。使用_Document:: GetTables返回一个Tables对象,使用Tables::Add在指定区域插入一个表格。
    获取列对象。使用Table:: GetColumns返回一个Columns对象,使用Columns:: Item返回一个Column对象。从而可以列为对象进行操作。
    单元格插入文字。使用Table:: Cell返回Cell对象,使用Cell:: GetRange返回区域对象,或者使用Cell::Select使得表格获得输入焦点,从而进行编辑。

    4  文字转换为表格    
    当需要把一个记事本(*.txt)文件转换为表格插入到Word文档中。最快捷的作法是将txt内容粘贴到word文档中,然后将内容转化为表格。步骤如下:
    首先确定一个插入txt内容的Range对象。
    使用Range::InsertFile函数。InsertFile函数声明为:
       void Range::InsertFile(LPCTSTR FileName, VARIANT* Range, VARIANT* ConfirmConversions, VARIANT* Link, VARIANT* Attachment)
    参数说明如下:
    FileName 插入文本路径。
    Range 插入文本内容的Range对象,设为NULL
    ConfirmConversions 确认转换,设为FALSE
    Link 链接到文件,设为FALSE
    Attachment 链接行为,设为FALSE
    使用Range:: ConvertToTable转换文字为表格,返回一个Table对象。ConvertToTable函数声明为:
    LPDISPATCH Range::ConvertToTable(VARIANT* Separator, VARIANT* NumRows, VARIANT* NumColumns, VARIANT* InitialColumnWidth, VARIANT* Format, VARIANT* ApplyBorders, VARIANT* ApplyShading, VARIANT* ApplyFont, VARIANT* ApplyColor, VARIANT* ApplyHeadingRows, VARIANT* ApplyLastRow, VARIANT* ApplyFirstColumn, VARIANT* ApplyLastColumn, VARIANT* AutoFit, VARIANT*, VARIANT* DefaultTableBehavior)
    参数说明如下:
    Separator 分隔符。通常设为1,即设置制表符为分隔符(如果采用其他分隔符,请适当修改)
    NumRows 表格行数目
    NumColumns 列数目
    InitialColumnWidth,Format,ApplyBorders,ApplyShading,ApplyFont,ApplyColor,ApplyBorders,ApplyFirstColumn,ApplyLastColumn, DefaultTableBehavior,均可设为VarOpt,由系统默认
    AutoFit 自动调整。设为0
    也可利用Selection对象代替Range对象进行文本转换表格,调用函数与Range对象的函数名称一致,参数略有出入。

    5 设置页码       
    通常我们需要在任意指定页开始插入新页码。网上很多文章都是只能在第二页开始设置。以下介绍我通过观察VBA宏代码得到的一种插入页码的方法(实现方法当然可能不止一种,我曾在网上看到曾有一篇文章提及这个问题,但是他的代码不能正常运行,估计是作者发布文章的时候有些不小心有遗漏)。要点在于插入分节符和取消,并且要注意返回当前节。步骤如下:
    0 在前一页使用Selection::InsertBreak插入分节符,参数值为2(参数值7为分页符)。
    1 使用_Document::GetActiveWindow返回窗口Window对象。
    2 使用Window:: GetActivePane返回当前活动Pane窗格对象
    3 使用Pane::GetView返回View视图对象,View::SetType(long(3))。
    4 使用SetSeekView(long(10))获得页眉页脚视图。
    5 使用Selection::GetHeaderFooter()获得页眉页脚对象HeaderFooter。
    6 使用HeaderFooter::SetLinkToPrevious(FALSE)取消“与上一节相同”。
    7此时输入较点Selction停留在上一节的页脚处。使用View::SetSeekView(long(0))将返回到当前节的文字视图中。
    8 使用View::SetSeekView(long(10))再次获得本节的页眉页脚视图。
    9 使用Selection::GetHeaderFooter()获得页眉页脚对象HeaderFooter。
    10 使用HeaderFooter::GetRange获得Range对象rangeheadfoot。
    11 使用Range:: GetFields获得Fields对象。
    12使用Fields:: Add获得Field对象,具体参数赋值为Add(rangeheadfoot,COleVariant(short(33)),varOpt,varOpt)。
    13 使用Fields::GetPageNumbers()获得PageNumbers页码对象。
    14使用PageNumbers对象的方法设置属性。特别要设置SetStartingNumber(long(1))。
    PageNumbers对象的其他设置可参考如下:
    SetNumberStyle(long(0));
     SetHeadingLevelForChapter(long(0));
     SetIncludeChapterNumber(FALSE);
     SetChapterPageSeparator(long(0));
     SetRestartNumberingAtSection(true);
    15 通过Range对象rangeheadfoot设置页码居中及文字大小。
    16 结束页码设置。使用View::SetSeekView(long(0))返回到文字视图。

    6 插入Excel图表    
    在Excel生成图表后,Word可将其嵌入文档中并改变其格式。用户可以通过双击图表对象激活,然后进行类似于Excel环境下的操作。具体操作如下:
    使用Selection:: GetInlineShapes。获得内嵌区域集合对象InlineShapes。
    使用InlineShapes::AddOLEObject插入表格,并获得内嵌区域对象InlineShape。AddOLEObject函数声明为:
    LPDISPATCH AddOLEObject(VARIANT* ClassType, VARIANT* FileName, VARIANT* LinkToFile, VARIANT* DisplayAsIcon, VARIANT* IconFileName, VARIANT* IconIndex, VARIANT* IconLabel, VARIANT* Range)
    参数说明如下:
    ClassType 插入类型,若为Excel对象,设为COleVariant("Excel.Sheet.8")。
    FileName 文件路径。
    LinkToFile 链接到文件。设为FALSE。
    DisplayAsIcon 显示为图标,设为FALSE。
    IconFileName 文件名图标,设为VarOpt。
    IconIndex 索引图标,设为VarOpt。
    IconLabel 标签图标,设为VarOpt。
    Range 区域,设为VarOpt。
    使用InlineShape的方法SetHeight、SetWidth调整大小。这些方法的参数值都是打印格式下的英磅数值。

    7 生成目录     
    单文档对象_Document,目录集合对象TablesOfContents,目录对象TableOfContents及Range对象。操作流程如下:
    使用_Document:: GetTablesOfContents返回TablesOfContents对象。
    TablesOfContents::Add返回TableOfContents对象。
    LPDISPATCH TablesOfContents::Add(LPDISPATCH Range, VARIANT* UseHeadingStyles, VARIANT* UpperHeadingLevel, VARIANT* LowerHeadingLevel, VARIANT* UseFields, VARIANT* TableID, VARIANT* RightAlignPageNumbers, VARIANT* IncludePageNumbers, VARIANT* AddedStyles, VARIANT* UseHyperlinks, VARIANT* HidePageNumbersInWeb, VARIANT* UseOutlineLevels)
    参数说明如下:
    Range 插入目录的Range对象。通常目录是文档生成结束时进行插入的,因此必须事先指定插入目录的区域Range对象。
    UseHeadingStyles 使用制表符前导符,设为TRUE
    UpperHeadingLevel 顶级目录,通常设为1
    LowerHeadingLevel 底级目录,根据需要赋值
    UseFields 使用区域,设为FALSE
    TableID 目录索引,以1起始
    RightAlignPageNumbers 页码右对齐,设为TRUE
    IncludePageNumbers 包含页码,
    AddedStyles 增加类型,设为NULL
    UseHyperlinks 使用超链接,设为TRUE
    HidePageNumbersInWeb Web页中隐藏页码,设为TRUE
    UseOutlineLevels 使用大纲级别,设为TRUE
    使用TableOfContents:: GetRange获取区域对象,进行其他例如文字大小控制等操作。
    TableOfContents:: UpdatePageNumbers更新页码



    http://blog.csdn.net/luckisok/article/details/3213177

    展开全文
  • Word对象模型(.Net Perspective)  五大对象Application:代表Microsoft Word应用程序本身  是Document和Selection的基类。通过Application的属性和方法,我们可以控制Word的大环境。Document:代表一个Word文档 ...

    Word对象模型 (.Net Perspective)
      五大对象
    Application:代表Microsoft Word应用程序本身
      是Document和Selection的基类。通过Application的属性和方法,我们可以控制Word的大环境。
    Document:代表一个Word文档
      当你新建一个Word文档或者打开一个已有的Word文档,你将创建一个Document对象,该对象被加入到Words Documents Collection中。拥有焦点的Document称为ActiveDocument,可以通过Application对象的ActiveDocument属性获得当前文档对象
    Selection :代表当前选中的区域(高亮),没有选中区域时代表光标点
      它通常是高亮显示的(例如,你要改变一段文字的字体,你首先得选中这段文字,那么选中的这块区域就是当前文档的Selection对象所包含的区域)
    Bookmarks :书签
      1>书签一般有名字
      2>Saved with the document,且文档关闭了之后书签继续存在
      3>书签通常是隐藏的,但也可以通过代码设置其为可见

    Range :代表一块区域,与Selection类似,不过一般不可见
      1>包含一个起始位置和一个结束位置
      2>它可以包含光标点,一段文本或者整个文档
      3>它包含空格,tab以及paragraph marks
      4>它可以是当前选中的区域,当然也可以不是当前选中区域
      5>它被动态创建
      6>当你在一个Range的末尾插入文本,这将扩展该Range


      word文档对象的结构图


    关于对象的详细使用,可以参考msdn api

    实例使用  

    创建Word 文档所使用的主要方法是通过微软公司提供的Microsoft Word X Object Library,
    其中X 为版本号。Word2010对应14.0, Word 2007 对应12.0,Word 2003 对应11.0。
    通过在项目中添加该组件,即可使用微软公司提供的方法创建相应版本的Word 文档。
    在实例中我将所要生成word的格式设置为2003版本

    新建一个winForm项目文件,
    Com组件中添加 Microsoft Word 12.0 Object Library,引用面板中多出Microsoft.Office.Core、Microsoft.Office.Interop.Word两个引用。
    在类文件中添加应用如下:
    using MSWord = Microsoft.Office.Interop.Word;
    using System.IO;
    using System.Reflection;
    using Microsoft.Office.Interop.Word;

      下面从word创建、格式设置、文本添加、图片添加、表格添加展示部分代码:

    void CreateWord() { object path;//文件路径 string strContent;//文件内容MSWord.Application wordApp;//Word应用程序变量 MSWord.Document wordDoc;//Word文档变量path = "d:\\myWord.doc";//保存为Word2003文档 // path = "d:\\myWord.doc";//保存为Word2007文档 wordApp = new MSWord.ApplicationClass();//初始化 if (File.Exists((string)path)) { File.Delete((string)path); } //由于使用的是COM 库,因此有许多变量需要用Missing.Value 代替Object Nothing = Missing.Value; //新建一个word对象 wordDoc = wordApp.Documents.Add(refNothing, ref Nothing, ref Nothing, ref Nothing); //WdSaveDocument为Word2003文档的保存格式(文档后缀.doc)\wdFormatDocumentDefault为Word2007的保存格式(文档后缀.docx) object format = MSWord.WdSaveFormat.wdFormatDocument; //将wordDoc 文档对象的内容保存为DOC 文档,并保存到path指定的路径 wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, refNothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); //关闭wordDoc文档wordDoc.Close(ref Nothing, ref Nothing, ref Nothing); //关闭wordApp组件对象wordApp.Quit(ref Nothing, ref Nothing, ref Nothing); Response.Write(""); }

    创建Word文档

    private void SetWordStyle() { object path;//文件路径 string strContent;//文件内容MSWord.Application wordApp;//Word应用程序变量 MSWord.Document wordDoc;//Word文档变量path = "d:\\myWord.doc";//保存为Word2003文档 // path = "d:\\myWord.doc";//保存为Word2007文档 wordApp = new MSWord.ApplicationClass();//初始化 if (File.Exists((string)path)) { File.Delete((string)path); } Object Nothing = Missing.Value; wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing); //页面设置wordDoc.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4;//设置纸张样式 wordDoc.PageSetup.Orientation = Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait;//排列方式为垂直方向wordDoc.PageSetup.TopMargin = 57.0f; wordDoc.PageSetup.BottomMargin 57.0f; wordDoc.PageSetup.LeftMargin 57.0f; wordDoc.PageSetup.RightMargin 57.0f; wordDoc.PageSetup.HeaderDistance 30.0f;//页眉位置 //设置页眉wordApp.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;//视图样式wordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;//进入页眉设置,其中页眉边距在页面设置中已完成 wordApp.Selection.ParagraphFormat.Alignment =Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight; //插入页眉图片(测试结果图片未插入成功) wordApp.Selection.ParagraphFormat.Alignment =MSWord.WdParagraphAlignment.wdAlignParagraphCenter; string headerfile = "d:\\header.jpg"; Microsoft.Office.Interop.Word.InlineShape shape1 = wordApp.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(headerfile, refNothing, ref Nothing, ref Nothing); shape1.Height 20; shape1.Width 80; wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(" 文档页眉"); //去掉页眉的横线wordApp.ActiveWindow.ActivePane.Selection.ParagraphFormat.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].LineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleNone; wordApp.ActiveWindow.ActivePane.Selection.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom].Visible false; wordApp.ActiveWindow.ActivePane.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//退出页眉设置 //为当前页添加页码 Microsoft.Office.Interop.Word.PageNumbers pns = wordApp.Selection.Sections[1].Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers;//获取当前页的号码 pns.NumberStyle =Microsoft.Office.Interop.Word.WdPageNumberStyle.wdPageNumberStyleNumberInDash; pns.HeadingLevelForChapter 0; pns.IncludeChapterNumber false; pns.RestartNumberingAtSection false; pns.StartingNumber 0object pagenmbetal = Microsoft.Office.Interop.Word.WdPageNumberAlignment.wdAlignPageNumberCenter;//将号码设置在中间 object first = true; wordApp.Selection.Sections[1].Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers.Add(refpagenmbetal, ref first); object format = MSWord.WdSaveFormat.wdFormatDocument; wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, refNothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); wordDoc.Close(ref Nothing, refNothing, ref Nothing); wordApp.Quit(ref Nothing, ref Nothing, ref Nothing); Response.Write(""); }

    设置Word文档格式

    效果图:

     

    private void AddWordText() { object path;//文件路径 string strContent;//文件内容MSWord.Application wordApp;//Word应用程序变量 MSWord.Document wordDoc;//Word文档变量path = "d:\\myWord.doc";//保存为Word2003文档 // path = "d:\\myWord.doc";//保存为Word2007文档 wordApp = new MSWord.ApplicationClass();//初始化 if (File.Exists((string)path)) { File.Delete((string)path); } Object Nothing = Missing.Value; wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing); wordApp.Selection.ParagraphFormat.LineSpacing = 35f;//设置文档的行间距 //写入普通文本wordApp.Selection.ParagraphFormat.FirstLineIndent = 30;//首行缩进的长度 strContent = "c#向Word写入文本 普通文本:\n"; wordDoc.Paragraphs.Last.Range.Text = strContent; //将文档的前三个字替换成"asdfasdf",并将其颜色设为蓝色 object start = 0object end = 3; Microsoft.Office.Interop.Word.Range rang = wordDoc.Range(ref start, ref end); rang.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBrightGreen; rang.Text "我是替换文字"; wordDoc.Range(ref start, ref end); //写入黑体文本 object unite =Microsoft.Office.Interop.Word.WdUnits.wdStory; wordApp.Selection.EndKey(ref unite, refNothing); wordApp.Selection.ParagraphFormat.FirstLineIndent 0;//取消首行缩进的长度strContent = "黑体文本\n ";//在文本中使用'\n'换行 wordDoc.Paragraphs.Last.Range.Font.Name = "黑体"; wordDoc.Paragraphs.Last.Range.Text = strContent; // wordApp.Selection.Text = strContent; //写入加粗文本 strContent = "加粗文本\n "; wordApp.Selection.EndKey(refunite, ref Nothing); wordDoc.Paragraphs.Last.Range.Font.Bold 1;//Bold=0为不加粗wordDoc.Paragraphs.Last.Range.Text = strContent; // wordApp.Selection.Text = strContent; //写入15号字体文本 strContent = "15号字体文本\n "; wordApp.Selection.EndKey(ref unite, ref Nothing); wordDoc.Paragraphs.Last.Range.Font.Size 15; wordDoc.Paragraphs.Last.Range.Text =strContent; //写入斜体文本 strContent = "斜体文本\n "; wordApp.Selection.EndKey(refunite, ref Nothing); wordDoc.Paragraphs.Last.Range.Font.Italic 1; wordDoc.Paragraphs.Last.Range.Text = strContent; //写入蓝色文本 strContent = "蓝色文本\n "; wordApp.Selection.EndKey(ref unite, ref Nothing); wordDoc.Paragraphs.Last.Range.Font.Color = MSWord.WdColor.wdColorBlue; wordDoc.Paragraphs.Last.Range.Text = strContent; //写入下划线文本 strContent = "下划线文本\n "; wordApp.Selection.EndKey(ref unite, ref Nothing); wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineThick; wordDoc.Paragraphs.Last.Range.Text = strContent; object format =MSWord.WdSaveFormat.wdFormatDocument; wordDoc.SaveAs(ref path, ref format, refNothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, refNothing); wordDoc.Close(ref Nothing, ref Nothing, ref Nothing); wordApp.Quit(refNothing, ref Nothing, ref Nothing); Response.Write(""); }

    添加文本

    效果图:

     

    private void AddWordPic() { object path;//文件路径 string strContent;//文件内容MSWord.Application wordApp;//Word应用程序变量 MSWord.Document wordDoc;//Word文档变量path = "d:\\myWord.doc";//保存为Word2003文档 // path = "d:\\myWord.doc";//保存为Word2007文档 wordApp = new MSWord.ApplicationClass();//初始化 if (File.Exists((string)path)) { File.Delete((string)path); } Object Nothing = Missing.Value; wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing); stringfilename = "d:\\kk.jpg"//定义要向文档中插入图片的位置 object range =wordDoc.Paragraphs.Last.Range; //定义该图片是否为外部链接 object linkToFile = false;//默认 //定义插入的图片是否随word一起保存 object saveWithDocument = true//向word中写入图片wordDoc.InlineShapes.AddPicture(filename, ref Nothing, ref Nothing, ref Nothing);object unite = Microsoft.Office.Interop.Word.WdUnits.wdStory; wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//居中显示图片wordDoc.InlineShapes[1].Height = 130; wordDoc.InlineShapes[1].Width = 200; wordDoc.Content.InsertAfter("\n"); wordApp.Selection.EndKey(ref unite, ref Nothing); wordApp.Selection.ParagraphFormat.Alignment =Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; wordApp.Selection.Font.Size 10;//字体大小 wordApp.Selection.TypeText("图1 测试图片\n"); object format = MSWord.WdSaveFormat.wdFormatDocument; wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, refNothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); wordDoc.Close(ref Nothing, ref Nothing, ref Nothing); wordApp.Quit(ref Nothing, ref Nothing, ref Nothing); Response.Write(""); }

    添加图片

    效果图:

     

    private void AddWordTable() { object path;//文件路径 string strContent;//文件内容MSWord.Application wordApp;//Word应用程序变量 MSWord.Document wordDoc;//Word文档变量path = "d:\\myWord.doc";//保存为Word2003文档 // path = "d:\\myWord.doc";//保存为Word2007文档 wordApp = new MSWord.ApplicationClass();//初始化 if (File.Exists((string)path)) { File.Delete((string)path); } Object Nothing = Missing.Value; wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing); inttableRow = 6int tableColumn = 6//定义一个word中的表格对象 MSWord.Table table = wordDoc.Tables.Add(wordApp.Selection.Range, tableRow, tableColumn, ref Nothing, refNothing); wordDoc.Tables[1].Cell(11).Range.Text = "列\n行"for (int i = 1; i < tableRow; i++) { for (int j = 1; j < tableColumn; j++) { if (i == 1) { table.Cell(i, j+1).Range.Text = "Column " + j; } if (j == 1) { table.Cell(i+1, j).Range.Text = "Row " + i; } table.Cell(i+1, j+1).Range.Text = i + "行 " + j + ""; } } //添加行table.Rows.Add(ref Nothing); table.Rows[tableRow 1].Height = 45//向新添加的行的单元格中添加图片 string FileName = "d:\\kk.jpg";//图片所在路径 object LinkToFile = false;object SaveWithDocument = trueobject Anchor = table.Cell(tableRow+1, tableColumn).Range;//选中要添加图片的单元格wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor); wordDoc.Application.ActiveDocument.InlineShapes[1].Width = 75;//图片宽度wordDoc.Application.ActiveDocument.InlineShapes[1].Height = 45;//图片高度 // 将图片设置为四周环绕型 MSWord.Shape s = wordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape(); s.WrapFormat.Type = MSWord.WdWrapType.wdWrapSquare; //设置table样式 table.Rows.HeightRule =MSWord.WdRowHeightRule.wdRowHeightAtLeast; table.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8")); table.Range.Font.Size 10.5F; table.Range.Font.Bold 0; table.Range.ParagraphFormat.Alignment =MSWord.WdParagraphAlignment.wdAlignParagraphCenter; table.Range.Cells.VerticalAlignment =MSWord.WdCellVerticalAlignment.wdCellAlignVerticalBottom; //设置table边框样式table.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble; table.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle; table.Rows[1].Range.Font.Bold = 1; table.Rows[1].Range.Font.Size = 12F; table.Cell(11).Range.Font.Size = 10.5F; wordApp.Selection.Cells.Height 40;//所有单元格的高度 for(int i = 2; i <= tableRow; i++) { table.Rows[i].Height 20; } table.Cell(11).Range.ParagraphFormat.Alignment =Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight; table.Cell(11).Range.Paragraphs[2].Format.Alignment =Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft; table.Columns[1].Width = 50for (int i = 2; i <=tableColumn; i++) { table.Columns[i].Width 75; } //添加表头斜线,并设置表头的样式 table.Cell(11).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Visible = true; table.Cell(11).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].Color =Microsoft.Office.Interop.Word.WdColor.wdColorGray60; table.Cell(11).Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderDiagonalDown].LineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt; //表格边框 //表格内容行边框SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderHorizontal, Microsoft.Office.Interop.Word.WdColor.wdColorGray20, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth025pt); //表格内容列边框SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderVertical, Microsoft.Office.Interop.Word.WdColor.wdColorGray20, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth025pt); SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt); SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderRight, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt); SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderTop, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt); SetTableBorderStyle(table, Microsoft.Office.Interop.Word.WdBorderType.wdBorderBottom, Microsoft.Office.Interop.Word.WdColor.wdColorGray50, Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt); //合并单元格 table.Cell(44).Merge(table.Cell(45));//横向合并 table.Cell(23).Merge(table.Cell(43));//纵向合并 object format = MSWord.WdSaveFormat.wdFormatDocument; wordDoc.SaveAs(ref path, refformat, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, refNothing, ref Nothing); wordDoc.Close(ref Nothing, ref Nothing, ref Nothing); wordApp.Quit(ref Nothing, ref Nothing, ref Nothing); Response.Write(""); }

    添加表格

    附:SetTableBorderStyle函数内容

    table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Visible = true; table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Color =Word.WdColor.wdColorGreen; table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].LineWidth =Word.WdLineWidth.wdLineWidth050pt

    View Code

    效果图:

     

    书签使用:

    使用步骤:1:建立word模板,并且在word中插入要用到的书签

         2:c#方法中新建word操作类,并且打开硬盘中建立好的word模板

         3:找到word模板中的书签,并在书签处写入要插入的数据

     

    展开全文
  • 在office上的word中,如果插入形状后,默认“对象随文字移动”。当出现文字或者图片的格式出现更换,该形状就会随着变化位置。或者将word转换为PDF格式后,形状也会出现位置变化。因此我们要取消这个属性设置。 ...

    在office上的word中,如果插入形状后,默认“对象随文字移动”。当出现文字或者图片的格式出现更换,该形状就会随着变化位置。或者将word转换为PDF格式后,形状也会出现位置变化。因此我们要取消这个属性设置。

    点击形状后显示布局选项,点击它,如图。

    选中“在页面上的位置固定”的单选按钮即可,如图。

    展开全文
  • word宏的使用——Selection对象

    万次阅读 2016-06-24 11:34:42
    Selection 对象'代表窗口或窗格中的当前所选内容。所选内容代表文档中选定(或突出显示)的区域,如果文档中没有选定任何内容,则代表插入点。每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一...
    Selection 对象'代表窗口或窗格中的当前所选内容。所选内容代表文档中选定(或突出显示)的区域,如果文档中没有选定任何内容,则代表插入点。每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一个活动的 Selection 对象。
    


    相关方法

     BoldRun'在当前局部添加粗体字符格式或删除该格式。
     Calculate'计算选定内容中的数学表达式。返回的结果为 Single 类型。
     ClearCharacterAllFormatting'从所选文本中删除所有字符格式(包括通过字符样式应用的格式和手动应用的格式)。
     ClearCharacterDirectFormatting'取消所选文本的字符格式,即通过功能区的按钮或通过对话框手动应用的格式。
     ClearCharacterStyle'从所选文本中删除通过字符样式应用的字符格式。
     ClearFormatting'清除所选内容的文本格式和段落格式。
     ClearParagraphAllFormatting'从所选文本中删除所有段落格式(包括通过段落样式应用的格式和手动应用的格式)。
     ClearParagraphDirectFormatting'从所选文本中删除手动应用(使用功能区上的按钮或者通过对话框)的段落格式。
     ClearParagraphStyle'从所选文本中删除通过段落样式应用的段落格式。
     Collapse'将选定内容折叠到起始位置或结束位置。折叠之后起始位置和结束位置相同。
     ConvertToTable'将范围内的文本转换为表格。将该表格作为一个 Table 对象返回。
     Copy'将指定的选定内容复制到剪贴板。
     CopyAsPicture'CopyAsPicture 方法与 Copy 方法的工作方式相同。
     CopyFormat'复制选定文字第一个字符的字符格式。
     CreateAutoTextEntry'根据当前选定内容,将一个新的 AutoTextEntry 对象添加到 AutoTextEntries 集合。
     CreateTextbox'在选定内容周围添加一个默认大小的文本框。
     Cut'从文档中删除指定对象,并将其移动到剪贴板上。
     Delete'删除指定数量的字符或单词。
     DetectLanguage'分析指定文本,以确定书写文本的语言类型。
     EndKey'将选定内容移动或扩展到指定单位的末尾。
     EndOf'将区域或选定内容的结束字符位置移动或扩展至最近的一个指定文本单元末尾。
     EscapeKey'取消某种模式,如取消扩展或列选定模式(与按 ESC 相同)。
     Expand'扩展指定区域或所选内容。返回添至该区域或选定内容的字符数。Long 类型。
     ExportAsFixedFormat'将当前所选内容另存为 PDF 或 XPS 格式。
     Extend'打开扩展模式。如果扩展模式已经打开,则将选定内容扩展到下一个更大的文本单位。
     GoTo'将插入点移至紧靠指定项之前的字符位置,并返回一个 Range 对象(除 wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量之外)。
     GoToEditableRange'返回一个 Range 对象,该对象代表指定用户或用户组可以修改的文档区域。
     GoToNext'返回一个 Range 对象,该对象参考下一项目的起始位置或者由 What 参数确定的位置。如果将该方法应用于 Selection 对象,则该方法将选定内容移动到指定的项目处(但 wdGoToGrammaticalError、wdGoToProofreadingError 和 wdGoToSpellingError 常量除外)。
     GoToPrevious'返回一个 Range 对象,该对象参考前一项目的起始位置或者由参数 What 指定的位置。如果对 Selection 对象采用此方法,GoToPrevious 将选定内容移动到所指定的项目处。Range 对象。
     HomeKey'将选定内容移动或扩展至指定单位的开始。该方法返回表明选定内容实际移动的字符数的整数;如果移动不成功,则返回 0(零)。该方法相当于 Home 键的功能。
     InRange'如果应用此方法的所选内容包含在 Range 参数所指定的范围内,则该方法为 True。
     InsertAfter'将指定文本插入范围或所选内容的末尾。
     InsertBefore'在指定的所选内容之前插入指定文本。
     InsertBreak'插入分页符、分栏符或分节符。
     InsertCaption'紧靠在指定的所选内容之前或之后插入题注。
     InsertCells'向原有表添加单元格。
     InsertColumns'在选定内容的左侧插入新列。
     InsertColumnsRight'在当前选定内容的右边插入列。
     InsertCrossReference'插入对标题、书签、脚注、尾注或定义了题注标签的项(如公式、图表或表格)的交叉引用。
     InsertDateTime'以文本或 TIME 域的形式插入当前日期或时间,或将两者都插入。
     InsertFile'插入指定文件的全部或一部分。
     InsertFormula'插入包含选定内容的公式的 = (Formula) 域。
     InsertNewPage'在插入点的位置插入一个新页面。
     InsertParagraph'用新段落替换指定的所选内容。
     InsertParagraphAfter'在所选内容之后插入段落标记。
     InsertParagraphBefore'在指定的所选内容或范围前插入一个新段落。
     InsertRows'在所选内容的上方插入指定数量的新行。如果选定内容不在表格中,则会导致出错。
     InsertRowsAbove'在当前选定内容上方插入行。
     InsertRowsBelow'在当前选定内容的下方插入行。
     InsertStyleSeparator'插入特殊隐藏段落标记,使 Microsoft Word 可以使用不同的段落样式合并段落格式,以便在目录中插入内置标题。
     InsertSymbol'插入一个符号,用来替换指定的所选内容。
     InsertXML'将指定的 XML 插入文档中的光标处,并且替换任何选定文本。
     InStory'如果应用此方法的选择范围与 Range 参数指定的范围位于相同的文字部分中,则该方法为 True。
     IsEqual'如果应用此方法的选择范围等于 Range 参数所指定的范围,则该方法为 True。
     ItalicRun'在当前局部中添加或删除斜体字符格式。
     LtrPara'将指定段落的对齐方式和阅读顺序设置为从左向右。
     LtrRun'用于将指定局部的阅读顺序和对齐方式设置为从左向右。
     Move'将指定的所选内容折叠到其起始位置或结束位置,然后将折叠的对象移动指定的单位数。此方法返回一个 Long 类型的值,该值代表所选内容移动的单位数;如果移动失败,则返回 0(零)。
     MoveDown'将选定内容向下移动,并返回移动距离的单位数。
     MoveEnd'移动范围或所选内容的结束字符位置。
     MoveEndUntil'移动指定的所选内容的结束位置,直到在文档中找到任何指定的字符。
     MoveEndWhile'当在文档中找到任何指定的字符时,移动所选内容的结束字符位置。
     MoveLeft'将选定内容向左移动,并返回移动距离的单位数。
     MoveRight'将选定内容向右移动,并返回移动距离的单位数。
     MoveStart'移动指定的所选内容的起始位置。
     MoveStartUntil'移动指定的所选内容的起始位置,直到在文档中找到一个指定的字符。如果是在文档中向后移动,则扩展所选内容。
     MoveStartWhile'当在文档中找到任何指定的字符时,移动指定的所选内容的起始位置。
     MoveUntil'移动指定的所选内容,直到在文档中找到一个指定的字符。
     MoveUp'将所选内容向上移动,并返回移动的单位数。
     MoveWhile'当在文档中找到任何指定的字符时,移动指定的选择范围。
     Next'返回一个 Range 对象,该对象代表相对于指定的选择范围的下一个单位。
     NextField'选定下一个域。
     NextRevision'找到下一处修订并作为一个 Revision 对象返回。
     NextSubdocument'将所选内容移至下一个子文档。
     Paste'将“剪贴板”的内容插入指定的选择范围处。
     PasteAndFormat'粘贴选定的表格单元格,并为其设置指定的格式。
     PasteAppendTable'通过在所选行之间插入粘贴的行,将粘贴的单元格合并到现有的表格中。不覆盖任何单元格。
     PasteAsNestedTable'将一个或一组单元格作为嵌套表格粘贴到所选内容中。
     PasteExcelTable'粘贴 Microsoft Excel 表格并设置其格式。
     PasteFormat'将以 CopyFormat 方法复制的格式应用于选定内容。
     PasteSpecial'插入“剪贴板”中的内容。
     Previous'将所选文本移动指定的单位数,并返回与折叠的所选内容相关的 Range 对象。
     PreviousField'选择并返回前一域。
     PreviousRevision'找到前一处修订并作为 Revision 对象返回。
     PreviousSubdocument'将所选内容移至上一个子文档。
     ReadingModeGrowFont'在以阅读模式显示文档时,将所显示文本的大小增大一磅。
     ReadingModeShrinkFont'在以阅读模式显示文档时,将所显示文本的大小减小一磅。
     RtlPara'将指定段落的阅读顺序和对齐方式设置为从右向左。
     RtlRun'将指定的局部的阅读顺序和对齐方式设置为从右向左。
     Select'选择指定的文本。
     SelectCell'选择包含当前选定内容的匹配单元格。
     SelectColumn'选定包含插入点的列,或者选定包含选定内容的所有列。
     SelectCurrentAlignment'向前扩展选定部分,直到遇到另一种段落对齐方式为止。
     SelectCurrentColor'向前扩展选定内容,直至遇到另一种颜色的文字为止。
     SelectCurrentFont'向前扩展选定内容,直至遇到另一种字体或字号。
     SelectCurrentIndent'向前扩展选定内容,直至遇到具有另一种段落左右缩进量的文本为止。
     SelectCurrentSpacing'向前扩展选定内容,直至遇到具有另一种行间距的段落为止。
     SelectCurrentTabs'向前扩展选定内容,直至遇到另一种制表位的段落为止。
     SelectRow'选定插入点所在的行,或者选择选定内容所在行。
     SetRange'设置所选内容的起始字符和结束字符的位置。
     Shrink'将所选内容缩减至下一级较小的文字单位。
     ShrinkDiscontiguousSelection'当所选内容包括多个不连续的所选内容时,取消全部选择,只保留最近选择的文本。
     Sort'对指定的所选内容中的段落进行排序。
     SortAscending'按字母数字升序对段落或表格行进行排序。
     SortDescending'以字母数字降序排列所选内容中的段落或表格行。
     SplitTable'在选定内容第一行上面插入一个空段落。
     StartOf'将指定的区域或选定内容的开始位置移动或扩展至最近的指定文字单位的开头。该方法返回 Long 类型的值表明了区域或选定内容移动或扩展的字符数。如果是在文档中向后移动,则该方法返回负数。
     ToggleCharacterCode'在 Unicode 字符和其相应的十六进制值之间切换选定内容。
     TypeBackspace'删除折叠的选定内容(即一个插入点)前面的字符。
     TypeParagraph'插入一个新的空段落。
     TypeText'插入指定的文本。
     WholeStory'扩展某一所选内容,使其包括整个文字部分。
    属性
     Active'如果指定窗口或窗格中的选定内容处于活动状态,则该属性值为 True。Boolean 类型,只读。
     Application'返回一个 Application 对象,该对象代表 Microsoft Word 应用程序。
     BookmarkID'返回位于选定内容开始位置的书签编号。Long 类型,只读。
     Bookmarks'返回一个 Bookmarks 集合。该集合代表某一文档、区域或选定内容中的所有书签。只读。
     Borders'返回一个 Borders 集合,该集合代表指定对象的所有边框。
     Cells'返回一个 Cells 集合,该集合代表选定内容中的表格单元格。只读。
     Characters'返回一个 Characters 集合,该集合代表文档、区域或选定内容中的字符。只读。
     ChildShapeRange'返回一个 ShapeRange 集合,该集合代表选定区域中包含的子图形。
     Columns'返回一个 Columns 集合,该集合代表所选内容中的所有表格列。只读。
     ColumnSelectMode'如果列选定模式处于活动状态,则该属性值为 True。Boolean 类型,可读写。
     Comments'返回一个 Comments 集合,该集合代表指定批注中的所有批注。只读。
     Creator'返回一个 32 位整数,该整数指出用于创建指定对象的应用程序。Long 类型,只读。
     Document'返回一个 Document 对象,该对象与指定的选定内容相关。只读。
     Editors'返回一个 Editors 对象,该对象代表已授权修改文档中选定内容的所有用户。
     End'返回或设置选定内容的结束字符的位置。Long 类型,可读写。
     EndnoteOptions'返回一个 EndnoteOptions 对象,该对象代表选定内容中的尾注。
     Endnotes'返回一个 Endnotes 集合,该集合代表选定内容中包含的所有尾注。只读。
     EnhMetaFileBits'返回一个 Variant 类型的值,该值代表选定文本或文本区域的显示方式的图片表示形式。
     ExtendMode'如果“扩展”模式处于活动状态,则该属性值为 True。Boolean 类型,可读写。
     Fields'返回一个只读 Fields 集合,该集合代表选定内容中的所有域。
     Find'返回一个 Find 对象,该对象包含查找操作所需的条件。只读。
     FitTextWidth'返回或设置 Microsoft Word 在当前选定内容中填入文字的宽度(使用当前度量单位)。Single 类型,可读写。
     Flags'返回或设置选定内容的属性。WdSelectionFlags 类型,可读写。
     Font'返回或设置一个 Font 对象,该对象代表指定对象的字符格式。可读写。
     FootnoteOptions'返回一个 FootnoteOptions 对象,该对象代表选定内容中的脚注。
     Footnotes'返回一个 Footnotes 集合,该集合代表区域、选定内容或文档中的所有脚注。只读。
     FormattedText'返回或设置一个 Range 对象,该对象包含指定区域或选定内容中进行过格式编排的文字。可读写。
     FormFields'返回一个 FormFields 集合,该集合代表选定内容中所有窗体域。只读。
     Frames'返回一个 Frames 集合,该集合代表选定内容中的所有框架。只读。
     HasChildShapeRange'如果选定内容包含子图形,则该属性值为 True。Boolean 类型,只读。
     HeaderFooter'为指定的选定内容返回 HeaderFooter 对象。只读。
     HTMLDivisions'返回一个 HTMLDivisions 对象,该对象代表 Web 文档中的一个 HTML 区域。
     Hyperlinks'返回一个 Hyperlinks 集合,该集合代表指定选定内容中的所有超链接。只读。
     Information'返回有关指定的选定内容的信息。Variant 类型,只读。
     InlineShapes'返回一个 InlineShapes 集合,该集合代表选定内容中的所有 InlineShape 对象。只读。
     IPAtEndOfLine'如果插入点位于行(该行折到了下一行)的末尾,则该属性值为 True。Boolean 类型,只读。
     IsEndOfRowMark'如果指定的选定内容或区域折叠且位于表格行的结束标志处,则该属性值为 True。Boolean 类型,只读。
     LanguageDetected'返回或设置一个指定 Microsoft Word 是否已经检测过选定文本的语言的 Boolean 类型。
     LanguageID'返回或设置指定对象的语言。可读写。
     LanguageIDFarEast'为指定的对象返回或设置东亚语言。WdLanguageID 类型,可读写。
     LanguageIDOther'返回或设置指定对象的语言。WdLanguageID 类型,可读写。
     NoProofing'
     OMaths'返回一个 OMaths 集合,该集合代表当前选定区域内的 OMath 对象。只读。
     Orientation'
     PageSetup'
     ParagraphFormat'
     Paragraphs'
     Parent'
     PreviousBookmarkID'返回位于指定的所选内容或区域中或之前的最后一个书签的编号。如果没有相应的书签,则返回 0(零)。Long 类型,只读。
     Range'
     Rows'
     Sections'
     Sentences'
     Shading'
     ShapeRange'
     SmartTags'返回一个 SmartTags 对象,该对象代表选定内容中的某个智能标记。
     Start'
     StartIsActive'如果选定内容的开始部分处于活动状态,则该属性值为 True。Boolean 类型,可读写。
     StoryLength'
     StoryType'
     Style'
     Tables'
     Text'
     TopLevelTables'
     Type'返回选择类型。WdSelectionType 类型,只读。
     WordOpenXML'返回一个 String 类型的值,该值以 Microsoft Office Word Open XML 格式表示选定内容中包含的 XML。只读。
     Words'
     XML'返回一个代表指定对象中的 XML 文本的 String 类型。
     XMLNodes'
     XMLParentNode'
    展开全文
  • Word 中编辑 Visio 或者插入 Visio 无响应,或者显示“用于创建此对象的程序是VISIO,您的计算机尚未安装此程序。若要编辑此对象,您必须安装可以打开此对象的程序”。 在网上找了很多方法都没有解决,偶然一次单独...
  • Word 鼠标移出绘图画布后已选中的图形自动取消选中解决办法: (1)在选择的对象上先鼠标右键再将鼠标移出就不会自动取消选中了 (2)在选择的对象上先鼠标右键,在弹出的菜单项中寻找要修改的项 ...
  • 2.问题:Word文档(文件后缀名doc)有Visio图,想编辑该Visio图,但是双击后无反应,右键点击编辑后显示“转化为Microsoft office 对象”,按提示转化之后,汉字乱码,部分图片元素错位。 3.解决方案:(1) 将doc...
  • 出错提示“Word 未能写某些嵌入对象,因为内容或磁盘空间不足”...列出解救方法如下: 原因一:Word保存设置 =================== 修改保存设置,进入”Tools”->”Options”->”Save”,取消对”Allow Fast Saves”选
  • WORD模型

    千次阅读 2012-02-18 22:40:56
    Word组件对象模型  Microsoft Office Word 2003 对象是按层次顺序排列的,层次结构顶端的两个主类是 Application 类和 Document 类。这两个类非常重要,因为在大部分时间里,您要么是在使用 Word 应用程序本身...
  • word技巧

    千次阅读 2018-03-01 21:40:22
    word 高效经典教程(整理版)目录一分钟驾驭word 高效经典教程(整理版)... 6A、基础知识... 61、度量单位... 62、WORD中文字字号与磅的对应关系... 63、字体文件格式... 7B、文本编辑... 71、快速移动文档... 72、...
  • word 模型

    千次阅读 2008-11-03 22:55:00
    Word组件对象模型 Microsoft Office Word 2003 对象是按层次顺序排列的,层次结构顶端的两个主类是 Application 类和 Document 类。这两个类非常重要,因为在大部分时间里,您要么是在使用 Word 应用程序本身,...
  • Word基本知识学习

    2012-12-24 18:41:17
    基本知识 学习 word 格式刷是用于复制格式的一种常用工具,它可以将选定对象或文本格式的格式复制,并将其应用到您单击的对象或文本中。 □选中设置好格式的文字,在工具栏上双击“格式刷”图标,光标将变成格式刷的...
  • word使用技巧大全

    热门讨论 2011-03-18 20:37:53
    ★用Word绘图时如何选择多个对象 26 ★绘图技巧 26 ★综合利用各种艺术效果 27 ★自定义新符号 27 ★2字变13字的进化 27 ★怎样防止打印信封时打偏 28 ★如何在其它计算机上打印含有本机特有字体的文件 28 ★在Word...
  • 这个问题网上找了很多地方,包括csdn的几个回答,都没有很好解决,最后...REG_DWORD 十六进制值,使用以下值之一: 0-用户单击、执行对象时不提示 Office 1–用户单击、执行对象时从 Office 提示 2-不提示,对象不执行
  • Excel VBA 操作 Word(入门篇)

    万次阅读 多人点赞 2018-07-03 13:14:56
    原文地址本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人。 一、新建Word引用需要首先创建一个对 Word Application 对象的引用。在VBA中,工具-引用,选取...
  • 因为我在导出Word时用的是一个对象,所以在我给一段文字设置了下划线以后接下来所有的文字都有了下划线,该怎么取消掉他的下划线
  • c# 操作Word总结

    千次阅读 2018-05-16 08:39:04
    Word对象模型 (.Net Perspective) 五大对象Application :代表Microsoft Word应用程序本身 是Document和Selection的基类。通过Application的属性和方法,我们可以控制Word的大环境。Document :代表一个Word...
  • 文章目录一、添加删除线和取消删除线1.1 Excel如何添加和取消删除线1.2 Word如何添加和取消删除线二、 一、添加删除线和取消删除线 1.1 Excel如何添加和取消删除线 Step1、选定需要添加或取消删除线的单元格、整行、...
  • 在平时项目开发中,相信或多或少的都遇到过word导出的需求,这里整理一个比较全面的java word导出方法,希望可以跟大家一起交流学习。 创建word模板 1.1 新建一个word模板,并修改字段 1 2 浏览器下载 ...
  • Python写入word文档

    千次阅读 2019-09-25 00:48:53
    file=docx.Document()#创建内存中的word文档对象 file.add_paragraph("窗前明月光")#写入若干段落 file.add_paragraph("疑是地上霜") file.add_paragraph("举头望明月") file.add_paragraph("低头思故乡") file.save...
  • Word 2016使用技巧

    千次阅读 2017-11-19 13:08:03
    Word 2016使用技巧 Word 2016提供了更简单的云端共享和协作方式,协作编辑文档更加方便。在版本历史记录中可找到每次修改的记录,并可与当前文档进行对比。智能查找可让您在无需离开Word窗口的情况下,利用互联网...
  • java操作word(一)

    万次阅读 2018-05-15 10:51:03
    所谓模板也就是标记了数据位置Word文件。模板可以简单的分为两种:一种模板包含了固定的、有限个数的数据位置,比如一个请假条的模板中只有“部门、姓名、原因、天数、日期”几个数据位置,也可能是这5个数据位置....
  • java word操作总结

    千次阅读 2014-09-19 09:36:43
    java word操作总结
  • WORD经典实用!

    千次阅读 2016-07-21 17:30:31
    WORD经典实用!较全面!
  • c#操作word

    千次阅读 2019-02-22 16:33:53
    本文中用C#来操作Word,包括:   创建Word; 插入文字,选择文字,编辑文字的字号、粗细、颜色、下划线等; 设置段落的首行缩进、行距; 设置页面页边距和纸张大小; 设置页眉、页码; 插入图片,设置图片宽...
  • Word学习笔记分享

    千次阅读 2019-02-22 13:57:10
    第一章、Word 的常规排版 1-5 文字选择 Ctrl+鼠标选取——多选 Alt+鼠标选取——框选 1-11 文字效果 为文字添加填充与边框 1-13 字体其他效果 为字体添加着重号、删除线、上下标等效果 Ctrl+D ——打开字体选项栏 1-...
  • 菜鸟学Word

    千次阅读 热门讨论 2016-07-18 16:56:42
     对于word中我们常常会插入很多图片,我们常常会调整图片大的大小和位置,一个个的改起来也挺麻烦的。怎么办呢? 图片居中  如何快速让word中的图片居中,按Ctrl+h,打开对话框如下,查找的内容依次为 更多...
  • matlab生成word文档

    千次阅读 2020-09-21 21:11:54
    % 判断Word是否已经打开,若已打开,就在打开的Word中进行操作,否则就打开Word try % 若Word服务器已经打开,返回其句柄Word Word = actxGetRunningServer('Word.Application'); catch % 否则,创建一个Microsoft ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,787
精华内容 12,314
关键字:

word取消对象位置