Word.Document class

Document 对象是顶层对象。 Document 对象包含一个或多个节、内容控件以及包含文档内容的正文。

扩展

注解

[ API 集:WordApi 1.1 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-change-tracking.yaml

// Gets the current change tracking mode.
await Word.run(async (context) => {
  const document: Word.Document = context.document;
  document.load("changeTrackingMode");
  await context.sync();

  if (document.changeTrackingMode === Word.ChangeTrackingMode.trackMineOnly) {
    console.log("Only my changes are being tracked.");
  } else if (document.changeTrackingMode === Word.ChangeTrackingMode.trackAll) {
    console.log("Everyone's changes are being tracked.");
  } else {
    console.log("No changes are being tracked.");
  }
});

属性

body

获取main文档的正文对象。 正文是排除页眉、页脚、脚注、文本框等的文本。

changeTrackingMode

指定 ChangeTracking 模式。

contentControls

获取文档中的内容控件对象的集合。 这包括文档正文中的内容控件、页眉、页脚、文本框等。

context

与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。

customXmlParts

获取文档中的自定义 XML 部件。

properties

获取文档的属性。

saved

指示是否已保存在文档中所做的更改。 如果值为 true,表示文档自上次保存以来并未更改。

sections

获取文档中节对象的集合。

settings

获取文档中加载项的设置。

方法

deleteBookmark(name)

从文档中删除书签(如果存在)。

getBookmarkRange(name)

获取书签的范围。 ItemNotFound如果书签不存在,则引发错误。

getBookmarkRangeOrNullObject(name)

获取书签的范围。 如果书签不存在,则此方法将返回一个 对象,其 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getSelection()

获取文档的当前选定内容。 不支持多个选择。

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

save(saveBehavior, fileName)

保存文档。

save(saveBehaviorString, fileName)

保存文档。

set(properties, options)

同时设置对象的多个属性。 可以传递具有相应属性的纯对象,也可以传递同一类型的另一个 API 对象。

set(properties)

基于现有的已加载对象,同时对对象设置多个属性。

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,依次调用toJSON传递给它的 对象的 方法。) 虽然原始Word.Document对象是 API 对象,toJSON但该方法返回一个纯 JavaScript 对象, (类型为 Word.Interfaces.DocumentData) ,其中包含从原始对象加载的任何子属性的浅表副本。

track()

根据文档中的相应更改来跟踪对象,以便进行自动调整。 此调用是 context.trackedObjects.add (thisObject) 的简写。 如果跨 .sync 调用和“.run”批处理的顺序执行外部使用此对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将该对象添加到跟踪的对象集合。 如果此对象是集合的一部分,则还应跟踪父集合。

untrack()

释放与此对象关联的内存(如果先前已跟踪过)。 此调用是 context.trackedObjects.remove (thisObject) 的简写。 拥有许多跟踪对象会降低主机应用程序的速度,因此请在使用完毕后释放所添加的任何对象。 在内存发布生效之前,需要调用 context.sync()

属性详细信息

body

获取main文档的正文对象。 正文是排除页眉、页脚、脚注、文本框等的文本。

readonly body: Word.Body;

属性值

注解

[ API 集:WordApi 1.1 ]

changeTrackingMode

指定 ChangeTracking 模式。

changeTrackingMode: Word.ChangeTrackingMode | "Off" | "TrackAll" | "TrackMineOnly";

属性值

Word.ChangeTrackingMode | "Off" | "TrackAll" | "TrackMineOnly"

注解

[ API 集:WordApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-change-tracking.yaml

// Gets the current change tracking mode.
await Word.run(async (context) => {
  const document: Word.Document = context.document;
  document.load("changeTrackingMode");
  await context.sync();

  if (document.changeTrackingMode === Word.ChangeTrackingMode.trackMineOnly) {
    console.log("Only my changes are being tracked.");
  } else if (document.changeTrackingMode === Word.ChangeTrackingMode.trackAll) {
    console.log("Everyone's changes are being tracked.");
  } else {
    console.log("No changes are being tracked.");
  }
});

contentControls

获取文档中的内容控件对象的集合。 这包括文档正文中的内容控件、页眉、页脚、文本框等。

readonly contentControls: Word.ContentControlCollection;

属性值

注解

[ API 集:WordApi 1.1 ]

context

与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。

context: RequestContext;

属性值

customXmlParts

获取文档中的自定义 XML 部件。

readonly customXmlParts: Word.CustomXmlPartCollection;

属性值

注解

[ API 集:WordApi 1.4 ]

properties

获取文档的属性。

readonly properties: Word.DocumentProperties;

属性值

注解

[ API 集:WordApi 1.3 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/30-properties/get-built-in-properties.yaml

await Word.run(async (context) => {
    const builtInProperties: Word.DocumentProperties = context.document.properties;
    builtInProperties.load("*"); // Let's get all!

    await context.sync();
    console.log(JSON.stringify(builtInProperties, null, 4));
});

saved

指示是否已保存在文档中所做的更改。 如果值为 true,表示文档自上次保存以来并未更改。

readonly saved: boolean;

属性值

boolean

注解

[ API 集:WordApi 1.1 ]

sections

获取文档中节对象的集合。

readonly sections: Word.SectionCollection;

属性值

注解

[ API 集:WordApi 1.1 ]

settings

获取文档中加载项的设置。

readonly settings: Word.SettingCollection;

属性值

注解

[ API 集:WordApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-settings.yaml

// Gets all custom settings this add-in set on this document.
await Word.run(async (context) => {
  const settings: Word.SettingCollection = context.document.settings;
  settings.load("items");
  await context.sync();

  if (settings.items.length == 0) {
    console.log("There are no settings.");
  } else {
    console.log("All settings:");
    for (let i = 0; i < settings.items.length; i++) {
      console.log(settings.items[i]);
    }
  }
});

方法详细信息

deleteBookmark(name)

从文档中删除书签(如果存在)。

deleteBookmark(name: string): void;

参数

name

string

必填。 不区分大小写的书签名称。

返回

void

注解

[ API 集:WordApi 1.4 ]

getBookmarkRange(name)

获取书签的范围。 ItemNotFound如果书签不存在,则引发错误。

getBookmarkRange(name: string): Word.Range;

参数

name

string

必填。 不区分大小写的书签名称。

返回

注解

[ API 集:WordApi 1.4 ]

getBookmarkRangeOrNullObject(name)

获取书签的范围。 如果书签不存在,则此方法将返回一个 对象,其 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getBookmarkRangeOrNullObject(name: string): Word.Range;

参数

name

string

必填。 不区分大小写的书签名称。

返回

注解

[ API 集:WordApi 1.4 ]

getSelection()

获取文档的当前选定内容。 不支持多个选择。

getSelection(): Word.Range;

返回

注解

[ API 集:WordApi 1.1 ]

示例

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    const textSample = 'This is an example of the insert text method. This is a method ' + 
        'which allows users to insert text into a selection. It can insert text into a ' +
        'relative location or it can overwrite the current selection. Since the ' +
        'getSelection method returns a range object, look up the range object documentation ' +
        'for everything you can do with a selection.';
    
    // Create a range proxy object for the current selection.
    const range = context.document.getSelection();
    
    // Queue a command to insert text at the end of the selection.
    range.insertText(textSample, Word.InsertLocation.end);
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    console.log('Inserted the text at the end of the selection.');
});  

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(options?: Word.Interfaces.DocumentLoadOptions): Word.Document;

参数

options
Word.Interfaces.DocumentLoadOptions

提供要加载对象的属性的选项。

返回

示例

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the document.
    const thisDocument = context.document;
    
    // Queue a command to load content control properties.
    thisDocument.load('contentControls/id, contentControls/text, contentControls/tag');
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (thisDocument.contentControls.items.length !== 0) {
        for (let i = 0; i < thisDocument.contentControls.items.length; i++) {
            console.log(thisDocument.contentControls.items[i].id);
            console.log(thisDocument.contentControls.items[i].text);
            console.log(thisDocument.contentControls.items[i].tag);
        }
    } else {
        console.log('No content controls in this document.');
    }
});

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNames?: string | string[]): Word.Document;

参数

propertyNames

string | string[]

逗号分隔的字符串或指定要加载的属性的字符串数组。

返回

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Word.Document;

参数

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select 是一个逗号分隔的字符串,指定要加载的属性,是 propertyNamesAndPaths.expand 一个逗号分隔的字符串,指定要加载的导航属性。

返回

save(saveBehavior, fileName)

保存文档。

save(saveBehavior?: Word.SaveBehavior, fileName?: string): void;

参数

saveBehavior
Word.SaveBehavior

可选。 保存行为必须为“保存”或“提示”。 默认值为“Save”。

fileName

string

可选。 文件名 (排除文件扩展名) 。 仅对新文档生效。

返回

void

注解

[ API 集:WordApi 1.1 ]

注意: saveBehaviorfileName 参数是在 WordApi 1.5 中引入的。

示例

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the document.
    const thisDocument = context.document;

    // Queue a command to load the document save state (on the saved property).
    thisDocument.load('saved');    
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
        
    if (thisDocument.saved === false) {
        // Queue a command to save this document.
        thisDocument.save();
        
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Saved the document');
    } else {
        console.log('The document has not changed since the last save.');
    }
});
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/save-close.yaml

// Saves the document with default behavior
// for current state of the document.
await Word.run(async (context) => {
  context.document.save();
  await context.sync();
});

save(saveBehaviorString, fileName)

保存文档。

save(saveBehaviorString?: "Save" | "Prompt", fileName?: string): void;

参数

saveBehaviorString

"Save" | "Prompt"

可选。 保存行为必须为“保存”或“提示”。 默认值为“Save”。

fileName

string

可选。 文件名 (排除文件扩展名) 。 仅对新文档生效。

返回

void

注解

[ API 集:WordApi 1.1 ]

注意: saveBehaviorfileName 参数是在 WordApi 1.5 中引入的。

set(properties, options)

同时设置对象的多个属性。 可以传递具有相应属性的纯对象,也可以传递同一类型的另一个 API 对象。

set(properties: Interfaces.DocumentUpdateData, options?: OfficeExtension.UpdateOptions): void;

参数

properties
Word.Interfaces.DocumentUpdateData

一个 JavaScript 对象,其属性按同构方式构造为调用方法的对象的属性。

options
OfficeExtension.UpdateOptions

提供一个选项,用于在 properties 对象尝试设置任何只读属性时禁止显示错误。

返回

void

set(properties)

基于现有的已加载对象,同时对对象设置多个属性。

set(properties: Word.Document): void;

参数

properties
Word.Document

返回

void

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,依次调用toJSON传递给它的 对象的 方法。) 虽然原始Word.Document对象是 API 对象,toJSON但该方法返回一个纯 JavaScript 对象, (类型为 Word.Interfaces.DocumentData) ,其中包含从原始对象加载的任何子属性的浅表副本。

toJSON(): Word.Interfaces.DocumentData;

返回

track()

根据文档中的相应更改来跟踪对象,以便进行自动调整。 此调用是 context.trackedObjects.add (thisObject) 的简写。 如果跨 .sync 调用和“.run”批处理的顺序执行外部使用此对象,并在设置属性或调用对象方法时收到“InvalidObjectPath”错误,则需要在首次创建对象时将该对象添加到跟踪的对象集合。 如果此对象是集合的一部分,则还应跟踪父集合。

track(): Word.Document;

返回

untrack()

释放与此对象关联的内存(如果先前已跟踪过)。 此调用是 context.trackedObjects.remove (thisObject) 的简写。 拥有许多跟踪对象会降低主机应用程序的速度,因此请在使用完毕后释放所添加的任何对象。 在内存发布生效之前,需要调用 context.sync()

untrack(): Word.Document;

返回