Excel.Application class
表示用于管理工作簿的 Excel 应用程序。
- 扩展
注解
属性
calculation |
返回用于上次完整重新计算的 Excel 计算引擎版本。 |
calculation |
返回工作簿中使用的计算模式,由 中的 |
calculation |
返回应用程序的计算状态。 有关详细信息,请参阅 |
context | 与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。 |
culture |
提供基于当前系统区域性设置的信息。 这包括区域性名称、数字格式和其他区域性相关设置。 |
decimal |
获取用作数值的小数分隔符的字符串。 这基于本地 Excel 设置。 |
format |
指定是启用还是禁用“计算选项”中的“设置过时值格式”选项。 如果启用 选项,则会使用过时格式呈现过时的公式。 |
iterative |
返回迭代计算设置。 在 Windows 和 Mac 上的 Excel 中,设置将应用于 Excel 应用程序。 在Excel web 版和其他平台中,这些设置将应用于活动工作簿。 |
thousands |
获取用于分隔数值的十进制数左侧的数字组的字符串。 这基于本地 Excel 设置。 |
use |
指定是否启用 Excel 的系统分隔符。 系统分隔符包括小数分隔符和千位分隔符。 |
方法
calculate(calculation |
重新计算 Excel 中当前打开的所有工作簿。 |
calculate(calculation |
重新计算 Excel 中当前打开的所有工作簿。 |
load(options) | 将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
set(properties, options) | 同时设置对象的多个属性。 可以传递具有相应属性的纯对象,也可以传递同一类型的另一个 API 对象。 |
set(properties) | 基于现有的已加载对象,同时对对象设置多个属性。 |
suspend |
暂停计算,直到调用下一个 |
suspend |
暂停屏幕更新,直到调用下一个
注意*:不要重复调用 |
toJSON() | 重写 JavaScript |
属性详细信息
calculationEngineVersion
返回用于上次完整重新计算的 Excel 计算引擎版本。
readonly calculationEngineVersion: number;
属性值
number
注解
calculationMode
返回工作簿中使用的计算模式,由 中的 Excel.CalculationMode
常量定义。 可能的值为:Automatic
,其中 Excel 控制重新计算;,AutomaticExceptTables
其中 Excel 控制重新计算,但忽略表中的更改;Manual
其中,计算在用户请求时完成。
calculationMode: Excel.CalculationMode | "Automatic" | "AutomaticExceptTables" | "Manual";
属性值
Excel.CalculationMode | "Automatic" | "AutomaticExceptTables" | "Manual"
注解
calculationState
返回应用程序的计算状态。 有关详细信息,请参阅 Excel.CalculationState
。
readonly calculationState: Excel.CalculationState | "Done" | "Calculating" | "Pending";
属性值
Excel.CalculationState | "Done" | "Calculating" | "Pending"
注解
context
cultureInfo
提供基于当前系统区域性设置的信息。 这包括区域性名称、数字格式和其他区域性相关设置。
readonly cultureInfo: Excel.CultureInfo;
属性值
注解
decimalSeparator
获取用作数值的小数分隔符的字符串。 这基于本地 Excel 设置。
readonly decimalSeparator: string;
属性值
string
注解
示例
// 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();
});
formatStaleValues
注意
此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。
指定是启用还是禁用“计算选项”中的“设置过时值格式”选项。 如果启用 选项,则会使用过时格式呈现过时的公式。
formatStaleValues: boolean;
属性值
boolean
注解
iterativeCalculation
返回迭代计算设置。 在 Windows 和 Mac 上的 Excel 中,设置将应用于 Excel 应用程序。 在Excel web 版和其他平台中,这些设置将应用于活动工作簿。
readonly iterativeCalculation: Excel.IterativeCalculation;
属性值
注解
thousandsSeparator
获取用于分隔数值的十进制数左侧的数字组的字符串。 这基于本地 Excel 设置。
readonly thousandsSeparator: string;
属性值
string
注解
useSystemSeparators
指定是否启用 Excel 的系统分隔符。 系统分隔符包括小数分隔符和千位分隔符。
readonly useSystemSeparators: boolean;
属性值
boolean
注解
方法详细信息
calculate(calculationType)
重新计算 Excel 中当前打开的所有工作簿。
calculate(calculationType: Excel.CalculationType): void;
参数
- calculationType
- Excel.CalculationType
指定要使用的计算类型。 有关详细信息,请参阅 Excel.CalculationType
。
返回
void
注解
示例
// 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
注解
示例
await Excel.run(async (context) => {
context.workbook.application.calculate('Full');
await context.sync();
});
load(options)
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()
。
load(options?: Excel.Interfaces.ApplicationLoadOptions): Excel.Application;
参数
提供要加载对象的属性的选项。
返回
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
注解
suspendScreenUpdatingUntilNextSync()
暂停屏幕更新,直到调用下一个 context.sync()
。
注意*:不要重复调用 suspendScreenUpdatingUntilNextSync
(,例如循环) 。 重复调用将导致 Excel 窗口闪烁。
suspendScreenUpdatingUntilNextSync(): void;
返回
void
注解
示例
// 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;