Excel.Workbook class
Workbook 是包含相关工作簿对象(例如工作表、表和区域)的顶级对象。 若要了解有关工作簿对象模型的详细信息,请阅读 使用 Excel JavaScript API 处理工作簿。
- 扩展
注解
属性
application | 表示包含此工作簿的 Excel 应用程序实例。 |
auto |
指定工作簿是否处于自动保存模式。 |
bindings | 表示属于工作簿的绑定的集合。 |
calculation |
返回有关 Excel 计算引擎的版本号。 |
chart |
如果工作簿中的所有图表都跟踪它们所附加的实际数据点,则为 True。 如果图表跟踪数据点的索引,则为 False。 |
comments | 表示与工作簿关联的注释的集合。 |
context | 与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。 |
custom |
表示此工作簿包含的自定义 XML 部件的集合。 |
data |
表示工作簿中的所有数据连接。 |
functions | 表示可用于计算的工作表函数的集合。 |
is |
指定自上次保存工作簿以来是否进行了更改。 如果要关闭修改的工作簿而不保存它或系统提示保存它,则可以将此属性 |
name | 获取工作簿名称。 |
names | 表示工作簿范围的命名项的集合, () 命名区域和常量。 |
pivot |
表示一组与 workbook 相关联的 PivotTable 对象。 |
pivot |
表示一组与工作簿相关联的 PivotTableStyles。 |
previously |
指定工作簿是在本地保存还是联机保存。 |
properties | 获取工作簿属性。 |
protection | 返回工作簿的保护对象。 |
queries | 返回属于工作簿的 Power Query 查询的集合。 |
read |
|
settings | 表示与工作簿关联的设置的集合。 |
slicers | 表示与工作簿关联的切片器的集合。 |
slicer |
表示一组与工作簿相关联的 SlicerStyles。 |
styles | 表示与工作簿关联的样式的集合。 |
tables | 表示与工作簿关联的表的集合。 |
table |
表示一组与工作簿相关联的 TableStyles。 |
timeline |
表示一组与工作簿相关联的 TimelineStyles。 |
use |
如果此工作簿中的计算仅使用显示的数字精度来完成,则为 True。 将此属性从 |
worksheets | 表示与工作簿关联的工作表的集合。 |
方法
close(close |
关闭当前工作簿。 |
close(close |
关闭当前工作簿。 |
get |
获取工作簿中当前处于活动状态的单元格。 |
get |
获取工作簿中的当前活动图表。 如果没有活动图表, |
get |
获取工作簿中的当前活动图表。 如果没有活动图表,则此方法返回对象的 |
get |
获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器, |
get |
获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器,则此方法返回一个 对象,其 |
get |
|
get |
从工作簿中获取当前选定的单个区域。 如果选择了多个范围,此方法将引发错误。 |
get |
从工作簿中获取当前选定的一个或多个区域。 与 不同 |
insert |
将源工作簿中的指定工作表插入当前工作簿。 注意*:此 API 目前仅支持 Windows、Mac 和 Web 上的 Office。 |
load(options) | 将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
load(property |
将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 |
save(save |
保存当前工作簿。 |
save(save |
保存当前工作簿。 |
set(properties, options) | 同时设置对象的多个属性。 可以传递具有相应属性的纯对象,也可以传递同一类型的另一个 API 对象。 |
set(properties) | 基于现有的已加载对象,同时对对象设置多个属性。 |
toJSON() | 重写 JavaScript |
事件
on |
激活工作簿时发生。 注意:打开工作簿时不会触发此事件。 |
on |
在工作簿上更改自动保存设置时发生。 |
on |
文档中的选择更改时发生。 |
属性详细信息
application
表示包含此工作簿的 Excel 应用程序实例。
readonly application: Excel.Application;
属性值
注解
autoSave
bindings
表示属于工作簿的绑定的集合。
readonly bindings: Excel.BindingCollection;
属性值
注解
calculationEngineVersion
返回有关 Excel 计算引擎的版本号。
readonly calculationEngineVersion: number;
属性值
number
注解
chartDataPointTrack
如果工作簿中的所有图表都跟踪它们所附加的实际数据点,则为 True。 如果图表跟踪数据点的索引,则为 False。
chartDataPointTrack: boolean;
属性值
boolean
注解
comments
表示与工作簿关联的注释的集合。
readonly comments: Excel.CommentCollection;
属性值
注解
context
customXmlParts
表示此工作簿包含的自定义 XML 部件的集合。
readonly customXmlParts: Excel.CustomXmlPartCollection;
属性值
注解
dataConnections
表示工作簿中的所有数据连接。
readonly dataConnections: Excel.DataConnectionCollection;
属性值
注解
functions
表示可用于计算的工作表函数的集合。
readonly functions: Excel.Functions;
属性值
注解
isDirty
指定自上次保存工作簿以来是否进行了更改。 如果要关闭修改的工作簿而不保存它或系统提示保存它,则可以将此属性 true
设置为 。
isDirty: boolean;
属性值
boolean
注解
name
names
表示工作簿范围的命名项的集合, () 命名区域和常量。
readonly names: Excel.NamedItemCollection;
属性值
注解
pivotTables
表示一组与 workbook 相关联的 PivotTable 对象。
readonly pivotTables: Excel.PivotTableCollection;
属性值
注解
示例
// 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;
属性值
注解
previouslySaved
properties
获取工作簿属性。
readonly properties: Excel.DocumentProperties;
属性值
注解
示例
// 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;
属性值
注解
queries
返回属于工作簿的 Power Query 查询的集合。
readonly queries: Excel.QueryCollection;
属性值
注解
readOnly
settings
表示与工作簿关联的设置的集合。
readonly settings: Excel.SettingCollection;
属性值
注解
slicers
表示与工作簿关联的切片器的集合。
readonly slicers: Excel.SlicerCollection;
属性值
注解
slicerStyles
表示一组与工作簿相关联的 SlicerStyles。
readonly slicerStyles: Excel.SlicerStyleCollection;
属性值
注解
styles
表示与工作簿关联的样式的集合。
readonly styles: Excel.StyleCollection;
属性值
注解
示例
// 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;
属性值
注解
tableStyles
表示一组与工作簿相关联的 TableStyles。
readonly tableStyles: Excel.TableStyleCollection;
属性值
注解
timelineStyles
表示一组与工作簿相关联的 TimelineStyles。
readonly timelineStyles: Excel.TimelineStyleCollection;
属性值
注解
usePrecisionAsDisplayed
如果此工作簿中的计算仅使用显示的数字精度来完成,则为 True。 将此属性从 false
true
切换到 时,数据将永久失去准确性。
usePrecisionAsDisplayed: boolean;
属性值
boolean
注解
worksheets
表示与工作簿关联的工作表的集合。
readonly worksheets: Excel.WorksheetCollection;
属性值
注解
方法详细信息
close(closeBehavior)
关闭当前工作簿。
close(closeBehavior?: Excel.CloseBehavior): void;
参数
- closeBehavior
- Excel.CloseBehavior
工作簿关闭行为。
返回
void
注解
示例
// 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
注解
getActiveCell()
获取工作簿中当前处于活动状态的单元格。
getActiveCell(): Excel.Range;
返回
注解
示例
// 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;
返回
注解
getActiveChartOrNullObject()
获取工作簿中的当前活动图表。 如果没有活动图表,则此方法返回对象的 isNullObject
属性设置为 true
。 有关详细信息,请参阅 *OrNullObject 方法和属性。
getActiveChartOrNullObject(): Excel.Chart;
返回
注解
getActiveSlicer()
获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器, ItemNotFound
则会引发异常。
getActiveSlicer(): Excel.Slicer;
返回
注解
getActiveSlicerOrNullObject()
获取工作簿中当前处于活动状态的切片器。 如果没有活动切片器,则此方法返回一个 对象,其 isNullObject
属性设置为 true
。 有关详细信息,请参阅 *OrNullObject 方法和属性。
getActiveSlicerOrNullObject(): Excel.Slicer;
返回
注解
getIsActiveCollabSession()
true
如果多个用户正在编辑工作簿, (通过共同创作) ,则返回 。 请注意,工作簿状态更改和更改反映在方法结果之间可能存在一些延迟。
getIsActiveCollabSession(): OfficeExtension.ClientResult<boolean>;
返回
OfficeExtension.ClientResult<boolean>
注解
getSelectedRange()
从工作簿中获取当前选定的单个区域。 如果选择了多个范围,此方法将引发错误。
getSelectedRange(): Excel.Range;
返回
注解
示例
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;
返回
注解
示例
// 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
可选。 用于定义要插入哪些工作表以及将在工作簿中插入新工作表的位置的选项。 默认情况下,源工作簿中的所有工作表都插入到当前工作簿的末尾。
返回
OfficeExtension.ClientResult<string[]>
对应于每个新插入的工作表的 ID 数组。
注解
示例
// 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;
参数
提供要加载对象的属性的选项。
返回
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
注解
示例
// 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
注解
set(properties, options)
同时设置对象的多个属性。 可以传递具有相应属性的纯对象,也可以传递同一类型的另一个 API 对象。
set(properties: Interfaces.WorkbookUpdateData, options?: OfficeExtension.UpdateOptions): void;
参数
- properties
- Excel.Interfaces.WorkbookUpdateData
一个 JavaScript 对象,其属性按同构方式构造为调用方法的对象的属性。
- options
- OfficeExtension.UpdateOptions
提供一个选项,用于在 properties 对象尝试设置任何只读属性时禁止显示错误。
返回
void
set(properties)
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>;
事件类型
注解
示例
// 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>;
事件类型
注解
onSelectionChanged
文档中的选择更改时发生。
readonly onSelectionChanged: OfficeExtension.EventHandlers<Excel.SelectionChangedEventArgs>;