Excel.Workbook class

Workbook 是包含相关工作簿对象(例如工作表、表和区域)的顶级对象。 若要了解有关工作簿对象模型的详细信息,请阅读 使用 Excel JavaScript API 处理工作簿。

扩展

注解

[ API 集:ExcelApi 1.1 ]

属性

application

表示包含此工作簿的 Excel 应用程序实例。

autoSave

指定工作簿是否处于自动保存模式。

bindings

表示属于工作簿的绑定的集合。

calculationEngineVersion

返回有关 Excel 计算引擎的版本号。

chartDataPointTrack

如果工作簿中的所有图表都跟踪它们所附加的实际数据点,则为 True。 如果图表跟踪数据点的索引,则为 False。

comments

表示与工作簿关联的注释的集合。

context

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

customXmlParts

表示此工作簿包含的自定义 XML 部件的集合。

dataConnections

表示工作簿中的所有数据连接。

functions

表示可用于计算的工作表函数的集合。

isDirty

指定自上次保存工作簿以来是否进行了更改。 如果要关闭修改的工作簿而不保存它或系统提示保存它,则可以将此属性 true 设置为 。

name

获取工作簿名称。

names

表示工作簿范围的命名项的集合, () 命名区域和常量。

pivotTables

表示一组与 workbook 相关联的 PivotTable 对象。

pivotTableStyles

表示一组与工作簿相关联的 PivotTableStyles。

previouslySaved

指定工作簿是在本地保存还是联机保存。

properties

获取工作簿属性。

protection

返回工作簿的保护对象。

queries

返回属于工作簿的Power Query查询的集合。

readOnly

true如果工作簿在只读模式下打开,则返回 。

settings

表示与工作簿关联的设置的集合。

slicers

表示与工作簿关联的切片器的集合。

slicerStyles

表示一组与工作簿相关联的 SlicerStyles。

styles

表示与工作簿关联的样式的集合。

tables

表示与工作簿关联的表的集合。

tableStyles

表示一组与工作簿相关联的 TableStyles。

timelineStyles

表示一组与工作簿相关联的 TimelineStyles。

usePrecisionAsDisplayed

如果此工作簿中的计算仅使用显示的数字精度来完成,则为 True。 将此属性从 falsetrue切换到 时,数据将永久失去准确性。

worksheets

表示与工作簿关联的工作表的集合。

方法

close(closeBehavior)

关闭当前工作簿。

close(closeBehaviorString)

关闭当前工作簿。

getActiveCell()

获取工作簿中当前处于活动状态的单元格。

getActiveChart()

获取工作簿中的当前活动图表。 如果没有活动图表, ItemNotFound 则会引发异常。

getActiveChartOrNullObject()

获取工作簿中的当前活动图表。 如果没有活动图表,则此方法返回对象的 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getActiveSlicer()

获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器, ItemNotFound 则会引发异常。

getActiveSlicerOrNullObject()

获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器,则此方法返回一个 对象,其 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getIsActiveCollabSession()

true如果多个用户正在编辑工作簿, (通过共同创作) ,则返回 。 请注意,工作簿状态更改和更改反映在方法结果之间可能存在一些延迟。

getLinkedEntityCellValue(linkedEntityCellValueId)

LinkedEntityCellValue基于提供的 LinkedEntityId返回 。

getSelectedRange()

从工作簿中获取当前选定的单个区域。 如果选择了多个范围,此方法将引发错误。

getSelectedRanges()

从工作簿中获取当前选定的一个或多个区域。 与 不同 getSelectedRange(),此方法返回一个 RangeAreas 对象,该对象表示所有选定区域。

insertWorksheetsFromBase64(base64File, options)

将源工作簿中的指定工作表插入当前工作簿。

注意*:此 API 目前仅支持 Windows、Mac 和 Web 上的 Office。

load(options)

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

load(propertyNames)

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

load(propertyNamesAndPaths)

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

save(saveBehavior)

保存当前工作簿。

save(saveBehaviorString)

保存当前工作簿。

set(properties, options)

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

set(properties)

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

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,反过来又调用toJSON传递给它的 对象的 方法。) 而原始Excel.Workbook对象是 API 对象,toJSON该方法返回一个纯 JavaScript 对象, (类型为 Excel.Interfaces.WorkbookData) ,其中包含原始对象中任何已加载子属性的浅表副本。

事件

onActivated

激活工作簿时发生。 注意:打开工作簿时不会触发此事件。

onAutoSaveSettingChanged

在工作簿上更改自动保存设置时发生。

onSelectionChanged

文档中的选择更改时发生。

属性详细信息

application

表示包含此工作簿的 Excel 应用程序实例。

readonly application: Excel.Application;

属性值

注解

[ API 集:ExcelApi 1.1 ]

autoSave

指定工作簿是否处于自动保存模式。

readonly autoSave: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.9 ]

bindings

表示属于工作簿的绑定的集合。

readonly bindings: Excel.BindingCollection;

属性值

注解

[ API 集:ExcelApi 1.1 ]

calculationEngineVersion

返回有关 Excel 计算引擎的版本号。

readonly calculationEngineVersion: number;

属性值

number

注解

[ API 集:ExcelApi 1.9 ]

chartDataPointTrack

如果工作簿中的所有图表都跟踪它们所附加的实际数据点,则为 True。 如果图表跟踪数据点的索引,则为 False。

chartDataPointTrack: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.9 ]

comments

表示与工作簿关联的注释的集合。

readonly comments: Excel.CommentCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

context

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

context: RequestContext;

属性值

customXmlParts

表示此工作簿包含的自定义 XML 部件的集合。

readonly customXmlParts: Excel.CustomXmlPartCollection;

属性值

注解

[ API 集:ExcelApi 1.5 ]

dataConnections

表示工作簿中的所有数据连接。

readonly dataConnections: Excel.DataConnectionCollection;

属性值

注解

[ API 集:ExcelApi 1.7 ]

functions

表示可用于计算的工作表函数的集合。

readonly functions: Excel.Functions;

属性值

注解

[ API 集:ExcelApi 1.2 ]

isDirty

指定自上次保存工作簿以来是否进行了更改。 如果要关闭修改的工作簿而不保存它或系统提示保存它,则可以将此属性 true 设置为 。

isDirty: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.9 ]

name

获取工作簿名称。

readonly name: string;

属性值

string

注解

[ API 集:ExcelApi 1.7 ]

names

表示工作簿范围的命名项的集合, () 命名区域和常量。

readonly names: Excel.NamedItemCollection;

属性值

注解

[ API 集:ExcelApi 1.1 ]

pivotTables

表示一组与 workbook 相关联的 PivotTable 对象。

readonly pivotTables: Excel.PivotTableCollection;

属性值

注解

[ API 集:ExcelApi 1.3 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-get-pivottables.yaml

await Excel.run(async (context) => {
  // Get the names of all the PivotTables in the workbook.
  const pivotTables = context.workbook.pivotTables;
  pivotTables.load("name");
  await context.sync();

  // Display the names in the console.
  console.log("PivotTables in the workbook:")
  pivotTables.items.forEach((pivotTable) => {
    console.log(`\t${pivotTable.name}`);
  });
});

pivotTableStyles

表示一组与工作簿相关联的 PivotTableStyles。

readonly pivotTableStyles: Excel.PivotTableStyleCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

previouslySaved

指定工作簿是在本地保存还是联机保存。

readonly previouslySaved: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.9 ]

properties

获取工作簿属性。

readonly properties: Excel.DocumentProperties;

属性值

注解

[ API 集:ExcelApi 1.7 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/26-document/properties.yaml

await Excel.run(async (context) => {
    let titleValue = "Excel document properties API";
    let subjectValue = "Set and get document properties";
    let keywordsValue = "Set and get operations";
    let commentsValue = "This is an Excel document properties API code sample";
    let categoryValue = "Office Add-ins";
    let managerValue = "John";
    let companyValue = "Microsoft";

    let docProperties = context.workbook.properties;

    // Set the writeable document properties.
    docProperties.title = titleValue;
    docProperties.subject = subjectValue;
    docProperties.keywords = keywordsValue;
    docProperties.comments = commentsValue;
    docProperties.category = categoryValue;
    docProperties.manager = managerValue;
    docProperties.company = companyValue;

    await context.sync();

    console.log("Set the following document properties: title, subject, keywords, comments, category, manager, company.");
});

protection

返回工作簿的保护对象。

readonly protection: Excel.WorkbookProtection;

属性值

注解

[ API 集:ExcelApi 1.7 ]

queries

返回属于工作簿的Power Query查询的集合。

readonly queries: Excel.QueryCollection;

属性值

注解

[ API 集:ExcelApi 1.14 ]

readOnly

true如果工作簿在只读模式下打开,则返回 。

readonly readOnly: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.8 ]

settings

表示与工作簿关联的设置的集合。

readonly settings: Excel.SettingCollection;

属性值

注解

[ API 集:ExcelApi 1.4 ]

slicers

表示与工作簿关联的切片器的集合。

readonly slicers: Excel.SlicerCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

slicerStyles

表示一组与工作簿相关联的 SlicerStyles。

readonly slicerStyles: Excel.SlicerStyleCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

styles

表示与工作簿关联的样式的集合。

readonly styles: Excel.StyleCollection;

属性值

注解

[ API 集:ExcelApi 1.7 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/42-range/style.yaml

await Excel.run(async (context) => {
    let styles = context.workbook.styles;

    // Add a new style to the style collection.
    // Styles is in the Home tab ribbon.
    styles.add("Diagonal Orientation Style");
          
    let newStyle = styles.getItem("Diagonal Orientation Style");
    
    // The "Diagonal Orientation Style" properties.
    newStyle.textOrientation = 38;
    newStyle.autoIndent = true;
    newStyle.includeProtection = true;
    newStyle.shrinkToFit = true;
    newStyle.locked = false;
    
    await context.sync();

    console.log("Successfully added a new style with diagonal orientation to the Home tab ribbon.");
});

tables

表示与工作簿关联的表的集合。

readonly tables: Excel.TableCollection;

属性值

注解

[ API 集:ExcelApi 1.1 ]

tableStyles

表示一组与工作簿相关联的 TableStyles。

readonly tableStyles: Excel.TableStyleCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

timelineStyles

表示一组与工作簿相关联的 TimelineStyles。

readonly timelineStyles: Excel.TimelineStyleCollection;

属性值

注解

[ API 集:ExcelApi 1.10 ]

usePrecisionAsDisplayed

如果此工作簿中的计算仅使用显示的数字精度来完成,则为 True。 将此属性从 falsetrue切换到 时,数据将永久失去准确性。

usePrecisionAsDisplayed: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.9 ]

worksheets

表示与工作簿关联的工作表的集合。

readonly worksheets: Excel.WorksheetCollection;

属性值

注解

[ API 集:ExcelApi 1.1 ]

方法详细信息

close(closeBehavior)

关闭当前工作簿。

close(closeBehavior?: Excel.CloseBehavior): void;

参数

closeBehavior
Excel.CloseBehavior

工作簿关闭行为。

返回

void

注解

[ API 集:ExcelApi 1.11 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/50-workbook/workbook-save-and-close.yaml

await Excel.run(async (context) => {
    context.workbook.close(Excel.CloseBehavior.save);
});

close(closeBehaviorString)

关闭当前工作簿。

close(closeBehaviorString?: "Save" | "SkipSave"): void;

参数

closeBehaviorString

"Save" | "SkipSave"

工作簿关闭行为。

返回

void

注解

[ API 集:ExcelApi 1.11 ]

getActiveCell()

获取工作簿中当前处于活动状态的单元格。

getActiveCell(): Excel.Range;

返回

注解

[ API 集:ExcelApi 1.7 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/50-workbook/workbook-get-active-cell.yaml

await Excel.run(async (context) => {

    let myWorkbook = context.workbook;
    let activeCell = myWorkbook.getActiveCell();
    activeCell.load("address");

    await context.sync();
    
    console.log("The active cell is " + activeCell.address);
});

getActiveChart()

获取工作簿中的当前活动图表。 如果没有活动图表, ItemNotFound 则会引发异常。

getActiveChart(): Excel.Chart;

返回

注解

[ API 集:ExcelApi 1.9 ]

getActiveChartOrNullObject()

获取工作簿中的当前活动图表。 如果没有活动图表,则此方法返回对象的 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getActiveChartOrNullObject(): Excel.Chart;

返回

注解

[ API 集:ExcelApi 1.9 ]

getActiveSlicer()

获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器, ItemNotFound 则会引发异常。

getActiveSlicer(): Excel.Slicer;

返回

注解

[ API 集:ExcelApi 1.10 ]

getActiveSlicerOrNullObject()

获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器,则此方法返回一个 对象,其 isNullObject 属性设置为 true。 有关详细信息,请参阅 *OrNullObject 方法和属性

getActiveSlicerOrNullObject(): Excel.Slicer;

返回

注解

[ API 集:ExcelApi 1.10 ]

getIsActiveCollabSession()

true如果多个用户正在编辑工作簿, (通过共同创作) ,则返回 。 请注意,工作簿状态更改和更改反映在方法结果之间可能存在一些延迟。

getIsActiveCollabSession(): OfficeExtension.ClientResult<boolean>;

返回

注解

[ API 集:ExcelApi 1.9 ]

getLinkedEntityCellValue(linkedEntityCellValueId)

LinkedEntityCellValue基于提供的 LinkedEntityId返回 。

getLinkedEntityCellValue(linkedEntityCellValueId: LinkedEntityId): OfficeExtension.ClientResult<LinkedEntityCellValue>;

参数

linkedEntityCellValueId
Excel.LinkedEntityId

指定单个 LinkedEntityCellValue的标识符。

返回

注解

[ API 集:ExcelApi 1.16 ]

getSelectedRange()

从工作簿中获取当前选定的单个区域。 如果选择了多个范围,此方法将引发错误。

getSelectedRange(): Excel.Range;

返回

注解

[ API 集:ExcelApi 1.1 ]

示例

await Excel.run(async (context) => { 
    const selectedRange = context.workbook.getSelectedRange();
    selectedRange.load('address');
    await context.sync();
    console.log(selectedRange.address);
});

getSelectedRanges()

从工作簿中获取当前选定的一个或多个区域。 与 不同 getSelectedRange(),此方法返回一个 RangeAreas 对象,该对象表示所有选定区域。

getSelectedRanges(): Excel.RangeAreas;

返回

注解

[ API 集:ExcelApi 1.9 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/42-range/range-areas.yaml

await Excel.run(async (context) => {

    const selectedRanges = context.workbook.getSelectedRanges();
    selectedRanges.format.fill.color = "lightblue";

    await context.sync();
})

insertWorksheetsFromBase64(base64File, options)

将源工作簿中的指定工作表插入当前工作簿。

注意*:此 API 目前仅支持 Windows、Mac 和 Web 上的 Office。

insertWorksheetsFromBase64(base64File: string, options?: Excel.InsertWorksheetOptions): OfficeExtension.ClientResult<string[]>;

参数

base64File

string

必填。 表示源工作簿文件的 Base64 编码字符串。

options
Excel.InsertWorksheetOptions

可选。 用于定义要插入哪些工作表以及将在工作簿中插入新工作表的位置的选项。 默认情况下,源工作簿中的所有工作表都插入到当前工作簿的末尾。

返回

对应于每个新插入的工作表的 ID 数组。

注解

[ API 集:ExcelApi 1.13 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/50-workbook/workbook-insert-external-worksheets.yaml

// Retrieve the file and set up an HTML FileReader element. 
const myFile = <HTMLInputElement>document.getElementById("file");
const reader = new FileReader();

reader.onload = (event) => {
    // Remove the metadata before the Base64-encoded string.
    const startIndex = reader.result.toString().indexOf("base64,");
    externalWorkbook = reader.result.toString().substr(startIndex + 7);
};

// Read the file as a data URL so that we can parse the Base64-encoded string.
reader.readAsDataURL(myFile.files[0]);

...

await Excel.run(async (context) => {
    // Retrieve the source workbook.
    const workbook = context.workbook;
    
    // Set up the insert options.
    const options = {
        sheetNamesToInsert: [], // Insert all the worksheets from the source workbook.
        positionType: Excel.WorksheetPositionType.after, // Insert after the `relativeTo` sheet.
        relativeTo: "Sheet1" // The sheet relative to which the other worksheets will be inserted. Used with `positionType`.
    };
    
    // Insert the new worksheets.
    workbook.insertWorksheetsFromBase64(externalWorkbook, options);
    await context.sync();
});

load(options)

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

load(options?: Excel.Interfaces.WorkbookLoadOptions): Excel.Workbook;

参数

options
Excel.Interfaces.WorkbookLoadOptions

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

返回

load(propertyNames)

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

load(propertyNames?: string | string[]): Excel.Workbook;

参数

propertyNames

string | string[]

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

返回

load(propertyNamesAndPaths)

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

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Excel.Workbook;

参数

propertyNamesAndPaths

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

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

返回

save(saveBehavior)

保存当前工作簿。

save(saveBehavior?: Excel.SaveBehavior): void;

参数

saveBehavior
Excel.SaveBehavior

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

返回

void

注解

[ API 集:ExcelApi 1.11 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/50-workbook/workbook-save-and-close.yaml

await Excel.run(async (context) => {
    context.workbook.save(Excel.SaveBehavior.save);
});

save(saveBehaviorString)

保存当前工作簿。

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

参数

saveBehaviorString

"Save" | "Prompt"

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

返回

void

注解

[ API 集:ExcelApi 1.11 ]

set(properties, options)

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

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

参数

properties
Excel.Interfaces.WorkbookUpdateData

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

options
OfficeExtension.UpdateOptions

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

返回

void

set(properties)

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

set(properties: Excel.Workbook): void;

参数

properties
Excel.Workbook

返回

void

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,反过来又调用toJSON传递给它的 对象的 方法。) 而原始Excel.Workbook对象是 API 对象,toJSON该方法返回一个纯 JavaScript 对象, (类型为 Excel.Interfaces.WorkbookData) ,其中包含原始对象中任何已加载子属性的浅表副本。

toJSON(): Excel.Interfaces.WorkbookData;

返回

事件详细信息

onActivated

激活工作簿时发生。 注意:打开工作簿时不会触发此事件。

readonly onActivated: OfficeExtension.EventHandlers<Excel.WorkbookActivatedEventArgs>;

事件类型

注解

[ API 集:ExcelApi 1.13 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/30-events/events-workbook-activated.yaml

async function workbookActivated(event: Excel.WorkbookActivatedEventArgs) {
  await Excel.run(async (context) => {
    // Callback function for when the workbook is activated.
    console.log("The workbook was activated.");
  });
}

...

await Excel.run(async (context) => {
  const workbook = context.workbook;

  // Register the workbook activated event handler.
  workbook.onActivated.add(workbookActivated);

  await context.sync();
  console.log("Added event handler for workbook activated.");
});

onAutoSaveSettingChanged

在工作簿上更改自动保存设置时发生。

readonly onAutoSaveSettingChanged: OfficeExtension.EventHandlers<Excel.WorkbookAutoSaveSettingChangedEventArgs>;

事件类型

注解

[ API 集:ExcelApi 1.9 ]

onSelectionChanged

文档中的选择更改时发生。

readonly onSelectionChanged: OfficeExtension.EventHandlers<Excel.SelectionChangedEventArgs>;

事件类型

注解

[ API 集:ExcelApi 1.2 ]