Excel.Application class

表示用于管理工作簿的 Excel 应用程序。

扩展

注解

[ API 集:ExcelApi 1.1 ]

属性

calculationEngineVersion

返回用于上次完整重新计算的 Excel 计算引擎版本。

calculationMode

返回工作簿中使用的计算模式,由 中的 Excel.CalculationMode常量定义。 可能的值为:Automatic,其中 Excel 控制重新计算;,AutomaticExceptTables其中 Excel 控制重新计算,但忽略表中的更改;Manual其中,计算在用户请求时完成。

calculationState

返回应用程序的计算状态。 有关详细信息,请参阅 Excel.CalculationState

context

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

cultureInfo

提供基于当前系统区域性设置的信息。 这包括区域性名称、数字格式和其他区域性相关设置。

decimalSeparator

获取用作数值的小数分隔符的字符串。 这基于本地 Excel 设置。

iterativeCalculation

返回迭代计算设置。 在 Windows 和 Mac 上的 Excel 中,设置将应用于 Excel 应用程序。 在Excel web 版和其他平台中,这些设置将应用于活动工作簿。

thousandsSeparator

获取用于分隔数值的十进制数左侧的数字组的字符串。 这基于本地 Excel 设置。

useSystemSeparators

指定是否启用 Excel 的系统分隔符。 系统分隔符包括小数分隔符和千位分隔符。

方法

calculate(calculationType)

重新计算 Excel 中当前打开的所有工作簿。

calculate(calculationTypeString)

重新计算 Excel 中当前打开的所有工作簿。

load(options)

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

load(propertyNames)

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

load(propertyNamesAndPaths)

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

set(properties, options)

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

set(properties)

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

suspendApiCalculationUntilNextSync()

暂停计算,直到调用下一个 context.sync() 。 设置后,开发者负责重新计算工作簿,以确保传播所有依赖项。

suspendScreenUpdatingUntilNextSync()

暂停屏幕更新,直到调用下一个 context.sync()

注意*:不要重复调用 suspendScreenUpdatingUntilNextSync (,例如循环) 。 重复调用将导致 Excel 窗口闪烁。

toJSON()

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

属性详细信息

calculationEngineVersion

返回用于上次完整重新计算的 Excel 计算引擎版本。

readonly calculationEngineVersion: number;

属性值

number

注解

[ API 集:ExcelApi 1.9 ]

calculationMode

返回工作簿中使用的计算模式,由 中的 Excel.CalculationMode常量定义。 可能的值为:Automatic,其中 Excel 控制重新计算;,AutomaticExceptTables其中 Excel 控制重新计算,但忽略表中的更改;Manual其中,计算在用户请求时完成。

calculationMode: Excel.CalculationMode | "Automatic" | "AutomaticExceptTables" | "Manual";

属性值

Excel.CalculationMode | "Automatic" | "AutomaticExceptTables" | "Manual"

注解

[ API 集:ExcelApi 1.1 for get,1.8 for set ]

calculationState

返回应用程序的计算状态。 有关详细信息,请参阅 Excel.CalculationState

readonly calculationState: Excel.CalculationState | "Done" | "Calculating" | "Pending";

属性值

Excel.CalculationState | "Done" | "Calculating" | "Pending"

注解

[ API 集:ExcelApi 1.9 ]

context

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

context: RequestContext;

属性值

cultureInfo

提供基于当前系统区域性设置的信息。 这包括区域性名称、数字格式和其他区域性相关设置。

readonly cultureInfo: Excel.CultureInfo;

属性值

注解

[ API 集:ExcelApi 1.11 ]

decimalSeparator

获取用作数值的小数分隔符的字符串。 这基于本地 Excel 设置。

readonly decimalSeparator: string;

属性值

string

注解

[ API 集:ExcelApi 1.11 ]

示例

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

await Excel.run(async (context) => {
  context.application.load("decimalSeparator,thousandsSeparator");
  context.application.cultureInfo.numberFormat.load("numberDecimalSeparator,numberGroupSeparator");
  await context.sync();

  // Local settings are set under the "Options > Advanced" menu.
  const localDecimalSeparator = context.application.decimalSeparator;
  const localThousandsSeparator = context.application.thousandsSeparator;

  const systemDecimalSeparator = context.application.cultureInfo.numberFormat.numberDecimalSeparator;
  const systemThousandsSeparator = context.application.cultureInfo.numberFormat.numberGroupSeparator;

  console.log("Local character settings: ");
  console.log(`  Local decimal separator: ${localDecimalSeparator}`);
  console.log(`  Local thousands separator: ${localThousandsSeparator}`);

  console.log("System culture settings: ");
  console.log(`  System decimal separator: ${systemDecimalSeparator}`);
  console.log(`  System thousands separator: ${systemThousandsSeparator}`);
  console.log(`  `);

  await context.sync();
});

iterativeCalculation

返回迭代计算设置。 在 Windows 和 Mac 上的 Excel 中,设置将应用于 Excel 应用程序。 在Excel web 版和其他平台中,这些设置将应用于活动工作簿。

readonly iterativeCalculation: Excel.IterativeCalculation;

属性值

注解

[ API 集:ExcelApi 1.9 ]

thousandsSeparator

获取用于分隔数值的十进制数左侧的数字组的字符串。 这基于本地 Excel 设置。

readonly thousandsSeparator: string;

属性值

string

注解

[ API 集:ExcelApi 1.11 ]

useSystemSeparators

指定是否启用 Excel 的系统分隔符。 系统分隔符包括小数分隔符和千位分隔符。

readonly useSystemSeparators: boolean;

属性值

boolean

注解

[ API 集:ExcelApi 1.11 ]

方法详细信息

calculate(calculationType)

重新计算 Excel 中当前打开的所有工作簿。

calculate(calculationType: Excel.CalculationType): void;

参数

calculationType
Excel.CalculationType

指定要使用的计算类型。 有关详细信息,请参阅 Excel.CalculationType

返回

void

注解

[ API 集:ExcelApi 1.1 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/90-scenarios/performance-optimization.yaml

await Excel.run(async (context) => {
  context.application.calculate(Excel.CalculationType.full);
});

calculate(calculationTypeString)

重新计算 Excel 中当前打开的所有工作簿。

calculate(calculationTypeString: "Recalculate" | "Full" | "FullRebuild"): void;

参数

calculationTypeString

"Recalculate" | "Full" | "FullRebuild"

指定要使用的计算类型。 有关详细信息,请参阅 Excel.CalculationType

返回

void

注解

[ API 集:ExcelApi 1.1 ]

示例

await Excel.run(async (context) => {
    context.workbook.application.calculate('Full');
    await context.sync();
});

load(options)

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

load(options?: Excel.Interfaces.ApplicationLoadOptions): Excel.Application;

参数

options
Excel.Interfaces.ApplicationLoadOptions

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

返回

load(propertyNames)

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

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

参数

propertyNames

string | string[]

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

返回

示例

await Excel.run(async (context) => {
    const application = context.workbook.application;
    application.load('calculationMode');
    await context.sync();

    console.log(application.calculationMode);
});

load(propertyNamesAndPaths)

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

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

参数

propertyNamesAndPaths

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

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

返回

set(properties, options)

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

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

参数

properties
Excel.Interfaces.ApplicationUpdateData

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

options
OfficeExtension.UpdateOptions

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

返回

void

set(properties)

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

set(properties: Excel.Application): void;

参数

properties
Excel.Application

返回

void

suspendApiCalculationUntilNextSync()

暂停计算,直到调用下一个 context.sync() 。 设置后,开发者负责重新计算工作簿,以确保传播所有依赖项。

suspendApiCalculationUntilNextSync(): void;

返回

void

注解

[ API 集:ExcelApi 1.6 ]

suspendScreenUpdatingUntilNextSync()

暂停屏幕更新,直到调用下一个 context.sync()

注意*:不要重复调用 suspendScreenUpdatingUntilNextSync (,例如循环) 。 重复调用将导致 Excel 窗口闪烁。

suspendScreenUpdatingUntilNextSync(): void;

返回

void

注解

[ API 集:ExcelApi 1.9 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/90-scenarios/performance-optimization.yaml

await Excel.run(async (context) => {
  // Recreate the data in the worksheet with random data.
  const sheet = context.workbook.worksheets.getActiveWorksheet();

  const startTime = Date.now();
  console.log("Starting...");

  // If other parts of the sample have toggled screen painting off, this will stop screen updating until context.sync is called.
  if (pauseScreenPainting) {
    context.application.suspendScreenUpdatingUntilNextSync();
  }

  for (let i = 1; i < ROW_COUNT; i++) {
    for (let j = 1; j < COLUMN_COUNT; j++) {
      let cell = sheet.getCell(i, j);
      cell.values = [[i * j * Math.random()]];

      // If other parts of the sample have toggled tracking off, we will avoid tracking this range and having to manage the proxy objects.
      // For more information, see https://learn.microsoft.com/office/dev/add-ins/concepts/resource-limits-and-performance-optimization#untrack-unneeded-proxy-objects
      if (untrack) {
        cell.untrack();
      }
    }
  }

  await context.sync();

  console.log(`Ending. Adding ${ROW_COUNT * COLUMN_COUNT} cells took ${Date.now() - startTime} milliseconds`);
});

toJSON()

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

toJSON(): Excel.Interfaces.ApplicationData;

返回