精华内容
下载资源
问答
  • word下图片格式批量设置

    千次阅读 2019-05-30 13:58:15
    2.打开word“文件”-中的“选项”卡,选择“自定义功能”,设置为“所有命令”,选择“选择多个对象”,自定义功能区在“开始”面板下“新建组”,将“选择多个对象”添加至此。 3.在“开始”选项卡下,...

    本文介绍三种方法。

    一、利用软件,如BatchDoc,可以快速批量的设置图片格式。

    二、word自带功能

    1.将word格式另存为97-2003的格式,即后缀名为doc,非docx。

    2.打开word“文件”-中的“选项”卡,选择“自定义功能”,设置为“所有命令”,选择“选择多个对象”,自定义功能区在“开始”面板下“新建组”,将“选择多个对象”添加至此。

    3.在“开始”选项卡下,点击刚刚添加的“选择多个对象”功能,在弹出的对话框中选择“全选”,点击“确定”。在一大摞图片上右键点击鼠标,选择“设置自选图形/图片格式“,在弹出的对话框中更改“大小”等样式,所有的图片都会发生改变。
    *注: 在设置所有的图片的“大小”时一定要记得打开“锁定纵横比”。因为你插入的多张图片的长宽比可能不同,如果不锁定纵横比,会导致部分图片被拉长或压扁,影响图片质量。

     

    三、使用VBA宏命令。

    1.首先将所有的图片格式转为嵌入式,这样才能设置如居中等格式。参考下列代码。

    Sub 图片版式转换()
        Dim oShape As Variant, shapeType As WdWrapType
        On Error Resume Next
        If MsgBox("Y将图片由嵌入式转为浮动式,N将图片由浮动式转为嵌入式", 68) = 6 Then
            shapeType = Val(InputBox(Prompt:="请输入图片版式:0=四周型,1=紧密型, " & vbLf & _
                                             "3=衬于文字下方,4=浮于文字上方", Default:=0))
            For Each oShape In ActiveDocument.InlineShapes
                Set oShape = oShape.ConvertToShape
                With oShape
                    Select Case shapeType
                    Case 0, 1
                        .WrapFormat.Type = shapeType
                    Case 3
                        .WrapFormat.Type = 3
                        .ZOrder 5
                    Case 4
                        .WrapFormat.Type = 3
                        .ZOrder 4
                    Case Else
                        Exit Sub
                    End Select
                    .WrapFormat.AllowOverlap = False    '不允许重叠
                End With
            Next
        Else
            For Each oShape In ActiveDocument.Shapes
                oShape.ConvertToInlineShape
            Next
        End If
    End Sub

    2.批量设置图片格式

    Sub 图片居中()
    Dim iSha As InlineShape
    For i = 1 To ActiveDocument.Paragraphs.Count
        If ActiveDocument.Paragraphs(i).Range.InlineShapes.Count > 0 Then
            With ActiveDocument.Paragraphs(i).Format '在这里可以设置图片的格式
                .CharacterUnitFirstLineIndent = 0
                
                .FirstLineIndent = 0
                .LeftIndent = 0
                .Alignment = wdAlignParagraphCenter
             End With
            End If
    Next i
    End Sub

    注意,对于不需要进行批量设置的图片,比如文本行中像素较小和文字混在一块的图片,可根据实际情况设置过滤条件,比如图片的高度

    展开全文
  • 本文主要介绍修改文本的格式的方法。按照上文介绍的方法,现在将D盘的Test.docx文档进行修改,修改成如下内容:  在“测试”按钮的单击事件处理函数中,获取对应的Range: private void button1_Click(object ...

            本文主要介绍修改文本的格式的方法。按照上文介绍的方法,现在将D盘的Test.docx文档进行修改,修改成如下内容:



            在“测试”按钮的单击事件处理函数中,获取对应的Range:
    private void button1_Click(object sender, EventArgs e)
    {
    Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
    string version = app.Version;
    Console.WriteLine(version);
    Document doc = app.Documents.Open("D:\\Test.docx");
    doc.ActiveWindow.Visible = true;
    Range range = doc.Range();
    range.Select();
    doc.Save();
    //app.Quit();
    app = null;
    }

            下面我们通过range来控制word中文本的格式:

    1、修改字体

            设置字体的格式为微软雅黑,字体的大小为14:
        range.Font.Size = 14;
        range.Font.Name = "微软雅黑";



    2、修改对齐方式

            修改成居中对齐:
        range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;




    3、加粗

    range.Bold = 10;

    4、增加下划线

    range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineDotDash;




    5、选中文本

        range.Select();

            最终的代码如下:
    private void button1_Click(object sender, EventArgs e)
    {
    Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
    string version = app.Version;
    Console.WriteLine(version);
    Document doc = app.Documents.Open("D:\\Test.docx");
    doc.ActiveWindow.Visible = true;
    Range range = doc.Range();
    range.Font.Size = 14;
    range.Font.Name = "微软雅黑";
    range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
    range.Bold = 10;
    range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineDotDash;
    range.Select();
    doc.Save();
    //app.Quit();
    app = null;
    }

    6、设置对齐方式                  

      range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
      range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
      range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;



    Github位置:

    https://github.com/HymanLiuTS/OfficeTestByC-

    克隆本项目:

    git clone git@github.com:HymanLiuTS/OfficeTestByC-.git

    获取本文源代码:

    git checkout L04


    展开全文
  • Word常用对象

    千次阅读 2015-09-30 17:56:02
     这两天一直在跟word打交道,刚开始对word不熟(现在也还是不太熟,haha), 然后分不清哪些是word自身的对象及功能哪些是我们项目中重新自定义的,今天来整理下word常用的对象(排除这个其他就是我们项目自定义的啦...
    前言
    
        这两天一直在跟word打交道,刚开始对word不熟(现在也还是不太熟,haha), 然后分不清哪些是word自身的对象及功能哪些是我们项目中重新自定义的,今天来整理下word常用的对象(排除这个其他就是我们项目自定义的啦),虽然大家一般都是在word的宏来使用word对象, 而我们项目中使用的是JavaScript,但是原理都是一样的,我们先从常用的word对象对word开发有个简单的认识。

    正题
        Visual Basic支持一个对象集合,该集合中的对象直接对应于Microsoft Word中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。例如,Document 对象代表了一个打开的文档,Bookmark对象代表了一个文档中的书签,而Selection对象则代表了在一个文档窗口窗格中的选定内容。在Word中,每一类元素-文档、表格、段落、书签、域等等-都可以用Visual Basic的对象来表示。要在Word中自动执行任务,可以使用这些对象的方法和属性。


    1. Application对象

    该对象代表 Microsoft Word 应用程序。Application对象包含可返回最高级对象的属性和方法。

    在用户启动一个Word 时段的同时,也创建了一个Application对象。用户可以使用Application 对象的属性或方法来控制或返回应用程序范围内的特性、控制应用程序窗口的外观或者调整Word 对象模型的其他方面。可以使用Application属性来返回Word Application 对象。以下的示例从视图状态切换到打印预览状态。

    Application. PrintPreview = True

    Application对象的一些属性控制着应用程序的外观。例如,如果DisplayStatusBar属性为True(真),那么状态栏是可见的,如果WindowState属性值为wdWindowStateMaximize,那么应用程序窗口处于最大化状态。

    下列示例启动 Word(如果 Word 尚未启动),并打开一篇现有的文档。

    Set wrd = GetObject(, "Word.Application")
    wrd.Visible = True
    wrd.Documents.Open "C:\My Documents\Temp.doc"
    Set wrd = Nothing

    2. Document对象

    代表一篇文档。Document对象是Documents集合中的一个元素。Documents集合包含 Word 当前打开的所有 Document对象。

    当用户在Word中打开或创建一个文件的同时,也创建了一个Document对象。用户可以使用Document对象或Documents集合的属性或方法来打开、创建、保存、激活或者关闭文件。

    用户可以使用语法Documents (index)来返回作为一个Document对象的任何打开的文档,在这里index是该文档的名字或索引号。因为当用户添加或关闭多个文档时,某个特定文档的索引号会发生改变,所以最好使用文档的名字来对Documents集合中的Document对象进行索引。

    可用 ActiveDocument属性引用处于活动状态的文档。

    下列示例用 Activate方法激活名为“Document 1”的文档,然后将页面方向设置为横向,并打印该文档。

    Documents("Document1").Activate
    ActiveDocument.PageSetup.Orientation = wdOrientLandscape
    ActiveDocument.PrintOut

    3. Selection对象

    该对象代表窗口或窗格中的当前所选内容。所选内容代表文档中被选定(或突出显示的)的区域,若文档中没有所选内容,则代表插入点。每个文档窗格只能有一个活动的 Selection对象,并且整个应用程序中只能有一个活动的 Selection对象。

    当用户使用Word中的某个文档时,通常会先选择文字,然后再执行一项操作,比如设定以有文字的格式,或是键入新文字。在Visual Basic中,通常没有必要在修改文字之前先选定该文字;而是创建一个表示文档特定部分的Range对象并对其进行操作。但是,当用户想要自己的代码对选定内容作出响应或是改变选定内容,就可以通过Selection对象来完成任务。

    可以使用Selection属性来返回Selection对象。Selection属性可以在Application对象、Window对象和Pane对象中使用。如果随同Application对象使用Selection属性,则该Selection对象表示活动的选定内容。

    下列示例复制活动文档的第一个窗格的所选内容,并将其粘添到第二个窗格中。

    ActiveDocument.ActiveWindow.Panes(1).Selection.Copy
    ActiveDocument.ActiveWindow.Panes(2).Selection.Paste

    4. Range对象

    该对象代表文档中的一个连续范围。每一个 Range对象由一起始和一终止字符位置定义。和文档中书签的使用方法类似,Visual Basic 使用 Range对象识别文档的指定部分。但和书签不同,Range对象只在定义该对象的过程正在运行时才存在。

    Range对象同选定内容相互独立;也就是说,可以定义和修改范围而不会改变选定内容。用户也可以在文档中定义多个范围,而此时每个文档窗格中仅有一个选定内容。

    下例返回对应于活动文档第二至第四段的 Range对象。
    Set aRange = ActiveDocument.Range( _ Start:=ActiveDocument.Paragraphs(2).Range.Start, _End:=ActiveDocument.Paragraphs(4).Range.End)

    5. Bookmark对象

    代表单个书签。Bookmark对象是Bookmarks集合中的元素。Bookmarks集合包括所有在“书签”对话框(“插入”菜单)内列出的书签。

    用 Bookmarks(index) 可返回单独的 Bookmark对象,其中 index 是书签名称或索引序号。书签名称的拼写必须完全匹配(但大小写不必匹配)。

    索引序号代表书签在 Selection 或 Range 中的位置,对 Document对象来说,索引序号代表书签在“书签”对话框的书签列表内的位置。该列表按字母顺序排列(单击“名称”可对书签列表按字母顺序进行排序)。

    通过某一区域和选定内容对象的BookmarkID属性可返回 Bookmark对象在 Bookmarks集合中的索引序号。下列示例显示活动文档中名为“temp”的书签的索引序号。

    下列示例显示 Bookmarks集合中第二个书签的名称。

    MsgBox ActiveDocument.Bookmarks(2).Name

    6. Revision对象

    该对象代表由修订标记所标记的修改。Revision对象为Revisions集合中的一个元素。Revisions集合包含了某区域或文档中的所有修订标记。

    使用 Revisions(index) 可返回单独的 Revision对象,其中 index 为索引序号。索引序号代表修订内容在某区域或文档中的位置。

    Add方法不能用于 Revisions集合。启用修订时会添加 Revision对象。可将TrackRevisions属性设为 True,以跟踪文档中所做的修订。

    下列示例启用修订跟踪功能并在所选内容前插入“Action”。

    ActiveDocument.TrackRevisions = True
    Selection.InsertBefore "Action "

    7. Section对象

    本对象代表选定内容、范围或文档中的某一节。Section对象为Sections集合的一个成员。Sections集合包含了选定内容、范围或文档中的所有节。

    可用 Sections(index) 返回单独的 Section对象,其中 index 为索引号。

    可用Add方法或InsertBreak方法在文档中添加新的节。

    下例在活动文档的开头添加一节。

    Set myRange = ActiveDocument.Range(Start:=0, End:=0)
    ActiveDocument.Sections.Add Range:=myRange
    myRange.InsertParagraphAfter

    8. Paragraph对象

    代表选定内容、范围或文档内的一个段落。Paragraph对象为Paragraphs集合的一个成员。Paragraphs集合包含了所选内容、范围或文档中的所有段落。

    可用 Paragraphs(index) 返回一个 Paragraph对象,其中 index 为索引号。

    可用Add、InsertParagraph、InsertParagraphAfter 或InsertParagraphBefore方法在文档中添加一个空段落。

    下例可在所选内容的第一段前添加一个段落标记。

    Selection.Paragraphs(1).Range.InsertParagraphBefore


    小结
        这里主要对各个对象有个基本的认识,后面我们就针对里面的对象进行着重的讲解。

    展开全文
  • 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

    展开全文
  • word2010 2003公式编辑器 格式设置

    千次阅读 2015-04-17 11:36:36
    word2010调用公式3.0来实现:插入-对象-microsoft 公式 3.0-样式 然后设置斜体(按下图修改) word2003 双击你的公式进入公式编辑器,选中要改的在样式其它中修改,或者先在定义中事先定义好格式
  • word2010公式编辑器 格式设置

    千次阅读 2015-04-17 11:34:30
    2010好像也只能调用公式3.0来实现:插入-对象-microsoft 公式 3.0-样式 然后设置斜体(按下图修改) 我的2003的,双击你的公式进入公式编辑器,选中要改的在样式其它中修改,或者先在定义中事先定义好...
  • Microsoft Word 对象

    千次阅读 2008-03-24 14:05:00
    目 录 运用Application对象 运用Document对象 运用Range对象 运用Selection对象 运用Find和Replacement对象 运用Table, Column, Row,和 Cell对象 运用其他普通对象 判断对象是否有效 修改Word 命令 运用事件 使用...
  • Python-docx 模块读写 Word 文档基础(一):创建文档、段落格式、字体格式设置方法前言:1、创建 Word 文档及基础用法:2、段落格式设置:3、字体格式设置:结尾:【Python与Word文档】专栏 前言: 从这篇博客开始...
  • word对象模型概述

    千次阅读 2012-10-02 16:20:50
    Word 对象模型概述 更新:2007 年 11 月 适用对象 本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 项目类型 文档级项目 ...
  • C#操作Word (1)Word对象模型

    万次阅读 多人点赞 2012-03-29 14:09:35
    Word对象模型 (.Net Perspective) 本文主要针对在Visual Studio中使用C# 开发关于Word的应用程序 来源:Understandingthe Word Object Model from a .NET Developer's Perspective 五大对象 Application :...
  • WordXML格式解析

    万次阅读 2017-12-10 12:08:11
    Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。 一个典型的WordXML结构...
  • 为了实现Word文档的在线编辑和使用,在PageOffice开发平台下开发出了WordDocument 类,它代表一个Word文档,既可以用来动态输出数据到Word文档并且控制其文档格式及编辑功能又可以用来读取用户输入到Word文档中的...
  • MFC VC 操作Excel,word的OLE对象

    千次阅读 2015-01-23 17:40:37
    前几天老板分配了一个任务,背景是用户手动复制excel的一些统计表或者word中的组织结构图或者Visio中的流程图等,不能直接保持原格式粘贴到MFC的RichEdit控件中。用户只能手动把word,excel,visio中的图形以OLE对象的...
  •  C#中添加对Word的支持,只需添加对Microsoft.Office.Interop.Word的命名空间,如下图所示,右键点击“引用”,在弹出的“添加引用”对话框中选中COM标签页,找到“Microsoft Word 12.0 Object Library”。...
  • 在平时项目开发中,相信或多或少的都遇到过word导出的需求,这里整理一个比较全面的java word导出方法,希望可以跟大家一起交流学习。 创建word模板 1.1 新建一个word模板,并修改字段 1 2 浏览器下载 ...
  • https://zhidao.baidu.com/question/349635463.html 对齐也可以统一处理,百度查找答案。
  • wordXML格式浅析

    千次阅读 2012-08-03 15:57:07
    Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。 一个典型的WordXML结构...
  • 实战用C#将Word转换PDF格式

    千次阅读 2016-08-18 14:59:25
    前言:由于一个客户的项目中需要将WORD文档转换成PDF格式,故写了本篇实站教程  需求分析:客户的项目以B/S结构为主,提供一个WORD文件在后台自动转换成PDF,经过实际测试,如果该篇WORD文档有100多页的话,转换需要20...
  • WordXML格式初步分析

    千次阅读 2016-11-29 21:45:43
    Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。 一个典型的WordXML结构...
  • // 设置数据对象,不要忘记此句,否则向Word中写入的操作不起作用 ... ... poCtrl1.setSaveDataPage("SaveDate.jsp"); // 保存时接收数据的地址 poCtrl1.webOpen("doc/test.doc", OpenModeType. docNormalEdit,...
  • 学习:WordXML格式初步分析

    千次阅读 2015-10-23 13:58:37
    Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。 一个典型的WordXML结构...
  • 之前的文章介绍了利用Range对象读写word的方法,用这种方法如果处理比较简单的文档还好,若文档较复杂,就显得有些力不从心了。  比如有这么一个文档,内容如下:  要求我们在程序里面动态的生成这些数据然后...
  • 此方法可行:右键单击Word中生成的mathtype公式,点击”设置对象格式”,设置为浮于文字上方,居中,然后两下回车,接着编辑就好了
  • word宏的使用——Selection对象

    万次阅读 2016-06-24 11:34:42
    Selection 对象'代表窗口或窗格中的当前所选内容。所选内容代表文档中选定(或突出显示)的区域,如果文档中... BoldRun'在当前局部添加粗体字符格式或删除该格式。  Calculate'计算选定内容中的数学表达式。返回的
  • Word对象模型 一、开发环境布置 C#中添加对Word的支持,只需添加对Microsoft.Office.Interop.Word的命名空间,如下图所示,右键点击“引用”,在弹出的“添加引用”对话框中选中COM标签页,找到“Microsoft Word ...
  • 现象是这样的:嵌入WORD后,在对象上按右键选择“设置对象格式“,得到对象的原始尺寸是高7.06cm、宽7.09cm;但是在服务器端,我提供的对象尺寸是(我用的是增强型图元文件格式)高9.419cm、宽9.450cm。为什么两者会...
  • 最近项目中遇到一个问题:POI 根据模板文件生成 word时,需要进行文字替换和图片替换,其中文字替换不必多说,只是图片替换时需要格式为浮于文字上方,网上找不到合适的资料,没办法 ,只好穷折腾了一天。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,132
精华内容 34,052
关键字:

word设置对象格式