[]
• new Workbook(host?, options?)
表示具有指定托管 DOM 元素或 DOM id 和选项设置的电子表格。
example
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount:3, font:"12pt Arial"});
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount:3, newTabVisible:false});
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 3, tabEditable: false });
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount:3, tabStripVisible:false});
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount:3, allowUserResize:false});
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 3, allowUserZoom: false});
| Name | Type | Description |
|---|---|---|
host? |
string | HTMLElement |
托管 DOM 元素或 id。 |
options? |
IWorkBookDefaultOptions |
- |
• collaboration: Collaboration
工作簿的协作管理器。
example
var snapshot = workbook.collaboration.toSnapshot();
• contextMenu: ContextMenu
Spread的上下文菜单。
example
//此示例展示如何获取contextMenu的menuData。
var menuData = spread.contextMenu.menuData;
• customPivotTableThemes: CustomPivotTableThemeManager
表示自定义数据透视表主题管理器。
• customSlicerThemes: CustomSlicerThemeManager
表示自定义项目切片器主题管理器。
• customTableThemes: CustomTableThemeManager
表示自定义表格主题管理器。
• customTimelineThemes: CustomTimelineThemeManager
表示自定义时间轴切片器主题管理器。
• docProps: IDocProps
文档属性。
• name: string
表示 Spread 控件的名称。
example
spread.name = "Spread1";
• options: IWorkbookOptions
表示 Spread 控件的选项。
property allowUserDragMerge - 是否允许用户拖动合并单元格。
property [options.allowDragHeaderToMove] - 指定如何允许拖动表头移动。
property allowUserDragDrop - 是否允许用户拖动和放置范围数据。
property allowUserDragFill - 是否允许用户拖动填充范围。
property allowUserZoom - 是否通过按住 Ctrl 键滚动鼠标滚轮来缩放显示。
property allowUserResize - 是否允许用户调整列和行。
property allowUndo - 是否允许用户撤销编辑。
property allowSheetReorder - 是否允许用户重新排列工作表。
property allowContextMenu - 是否允许用户打开内置上下文菜单。
property allowUserDeselect - 是否允许用户在选择中使用 deselect。
property defaultDragFillType - 默认填充类型。
property showDragFillSmartTag - 是否显示拖动填充对话框。
property showHorizontalScrollbar - 是否显示水平滚动条。
property showVerticalScrollbar - 是否显示垂直滚动条。
property scrollbarShowMax - 是否根据工作表中的所有列和行显示滚动条。
property scrollbarMaxAlign - 滚动条是否与活动工作表的最后一行和最后一列对齐。
property tabStripVisible - 是否显示工作表标签栏。
property tabStripRatio - 工作表标签栏的宽度,以水平滚动条宽度的百分比表示。
property tabStripWidth - 工作表标签栏的宽度,当它位于左侧或右侧时。默认值和最小值为 80。
property tabEditable - 是否允许用户编辑工作表标签栏。
property tabStripPosition - 工作表标签栏的位置。默认值为 bottom。
property newTabVisible - 是否显示特殊标签以允许用户插入新工作表。
property allSheetsListVisible - 是否显示特殊标签以允许用户打开对话框以显示所有工作表。
property tabNavigationVisible - 是否显示工作表标签导航。
property cutCopyIndicatorVisible - 是否在复制或剪切选中的项目时显示指示器。
property cutCopyIndicatorBorderColor - 在用户剪切或复制选中的项目时显示的指示器的边框颜色。
property backColor - 用于表示 Spread 组件背景颜色的颜色字符串,如 "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5" 等。
property backgroundImage - Spread 组件的背景图像。
property backgroundImageLayout - Spread 组件的背景图像布局。
property grayAreaBackColor - 用于表示灰色区域背景颜色的颜色字符串,如 "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5" 等。
property showResizeTip - 如何显示调整大小提示。
property showDragDropTip - 是否显示拖放提示。
property showDragFillTip - 是否显示拖放填充提示。
property showScrollTip - 如何显示滚动提示。
property scrollIgnoreHidden - 滚动条是否忽略隐藏的行或列。
property highlightInvalidData - 是否高亮显示无效数据。
property useTouchLayout - 是否使用触摸布局来呈现 Spread 组件。
property hideSelection - 当 Spread 组件没有焦点时是否显示选择高亮。
property resizeZeroIndicator - 当行或列调整大小时绘制策略。
property allowUserEditFormula - 是否允许用户在电子表格的单元格中编辑公式。
property enableFormulaTextbox - 是否在电子表格中启用公式文本框。
property autoFitType - 内容是否将格式化以适应单元格或单元格和表头。
property referenceStyle - 工作簿中单元格公式的单元格和范围引用的样式。
property allowDynamicArray - 是否启用动态数组。
property iterativeCalculation - 是否启用迭代计算。
property iterativeCalculationMaximumIterations - 迭代计算时的最大迭代次数。
property iterativeCalculationMaximumChange - 迭代计算时的最大变化。
property calcOnDemand - 是否仅在需要时计算公式。
property incrementalCalculation - 是否在不阻塞 UI 的情况下增量计算公式。
property dynamicReferences - 是否计算具有动态引用的函数。
property allowCopyPasteExcelStyle - 用户是否可以从 Spread Sheets 复制样式然后粘贴到 Excel,或从 Excel 复制样式然后粘贴到 Spread Sheets。
property allowExtendPasteRange - 如果粘贴范围不足以粘贴,是否扩展粘贴范围。
property copyPasteHeaderOptions - 复制或粘贴数据时包含哪些表头。
property calculationMode - 工作簿的重新计算行为。默认为自动。
property scrollByPixel - 是否启用按像素精确滚动。
property scrollPixel - 当 scrollByPixel 为 true 时,决定每次滚动该数量的像素。最终滚动像素是滚动增量乘以 scrollPixel 的结果。例如,滚动增量为 3,scrollPixel 为 5,则最终滚动像素为 15。
property enableAccessibility - 是否在电子表格中启用辅助功能支持。
property allowAutoCreateHyperlink - 是否在电子表格中启用自动创建超链接。
property columnResizeMode - 指定调整列的方式。
property rowResizeMode - 指定调整行的方式。
property customList - 用户自定义拖动填充的列表,在每次填充中优先匹配此列表。每个数组项都是字符串数组类型。
property scrollbarAppearance - 滚动条外观,包含 skin 和 mobile 两个枚举。默认为 skin。
property pasteSkipInvisibleRange - 是否跳过不可见范围进行粘贴。默认为 false。
property allowAutoExtendFilterRange - 是否允许像 excel 一样自动扩展筛选范围。默认为 false。
property allowInvalidFormula - 是否允许输入无效的公式字符串。默认为 false。
property formulaFormatHint - 是否在公式输入时自动生成格式。默认为 true。
property pivotAreaReference - 选择数据透视表数据区域时是否自动生成 getPivotData 公式或单元格引用。默认为 getPivotData。
property defaultSheetTabStyles - 工作表标签的所有默认状态样式。
property [options.builtInFileIcons] - 所有内置文件图标。
example
// var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:5,showHorizontalScrollbar:false});
var workbook = new GC.Spread.Sheets.Workbook("ss",{sheetCount:5,showHorizontalScrollbar:false});
workbook.options.allowUserDragDrop = false;
workbook.options.allowUserZoom = false;
• sheetTabStyles: SheetTabStyleManager
表示工作表标签样式管理器。
• sheets: Worksheet[]
表示工作表集合。
• touchToolStrip: TouchToolStrip
表示触摸工具栏。
▸ addCustomFunction(fn): void
添加自定义函数。
| Name | Type | Description |
|---|---|---|
fn |
Function |
要添加的函数。 |
void
▸ addCustomName(name, formula, baseRow, baseCol, comment?, isReadOnly?): void
添加自定义名称。
| Name | Type | Description |
|---|---|---|
name |
string |
自定义名称。 |
formula |
string |
公式。 |
baseRow |
number |
行索引。 |
baseCol |
number |
列索引。 |
comment? |
string |
- |
isReadOnly? |
boolean |
- |
void
▸ addNamedStyle(style): void
向工作簿的命名样式集合中添加样式。
| Name | Type | Description |
|---|---|---|
style |
Style |
要添加的样式。 |
void
▸ addSheet(index, sheet?): void
在指定索引处插入工作表。
example
//此示例向电子表格添加一个工作表。
spread.addSheet(0,new GC.Spread.Sheets.Worksheet("custom"));
| Name | Type | Description |
|---|---|---|
index |
number |
要添加工作表的索引位置。 |
sheet? |
Worksheet |
要添加的工作表。 |
void
▸ addSheetTab(index, name, type): any
在指定索引处插入工作表标签。
| Name | Type | Description |
|---|---|---|
index |
number |
要添加工作表标签的索引位置。 |
name |
string |
要添加的工作表标签名称。 |
type |
SheetType |
要添加的工作表标签类型。 |
any
添加的工作表标签。
▸ addSparklineEx(sparklineEx): void
向SparklineEx集合添加一个SparklineEx。
example
window.MySparklineEx = function(color) {
GC.Spread.Sheets.Sparklines.SparklineEx.apply(this, arguments);
this.typeName = 'MySparklineEx';
this.color = color;
}
MySparklineEx.prototype = new GC.Spread.Sheets.Sparklines.SparklineEx();
MySparklineEx.prototype.createFunction = function () {
var func = new GC.Spread.CalcEngine.Functions.Function('CIRCLE', 0, 0);
func.evaluate = function (args) {
return {};
};
return func;
};
MySparklineEx.prototype.paint = function (context, value, x, y, width, height) {
context.beginPath();
context.arc(x + width / 2, y + height / 2, (Math.min(width, height) - 6) / 2, 0, Math.PI * 2);
context.strokeStyle = this.color;
context.stroke();
};
spread.addSparklineEx(new MySparklineEx('green'));
| Name | Type | Description |
|---|---|---|
sparklineEx |
SparklineEx |
要添加的SparklineEx。 |
void
▸ bind(type, data?, fn?): void
为工作簿绑定事件。
example
//此示例将事件绑定到函数。
sheet.setActiveCell(5,5);
alert(sheet.getActiveColumnIndex());
alert(sheet.getActiveRowIndex());
spread.bind(GC.Spread.Sheets.Events.EnterCell, function (event, data) {
alert(data.col);
alert(data.row);
});
spread.bind(GC.Spread.Sheets.Events.LeaveCell, function (event, data) {
alert(data.col);
alert(data.row);
});
| Name | Type | Description |
|---|---|---|
type |
string |
事件类型。 |
data? |
any |
指定要传递给函数的附加数据。 |
fn? |
Function |
指定事件发生时运行的函数。 |
void
▸ calculate(type?, address?): void
重建、标记脏数据、广播脏数据并重新计算公式。 首先根据计算类型在地址中重建并标记脏数据。 然后广播脏数据将递归地将工作簿中脏单元格的依赖项设置为脏。 在自动模式下,所有脏单元格都将被计算。 在手动模式下,只计算地址中的单元格,其他单元格保持脏状态。 如果CalcService被暂停,将跳过重新计算。
example
spread.sheets[0].setFormula(0,0,"RAND()");
spread.sheets[0].setFormula(1,0,"=Sheet2!A1");
spread.sheets[0].setFormula(2,0,"=1+2");
spread.sheets[1].setFormula(0,0,"RAND()");
spread.sheets[1].setFormula(1,0,"=Sheet1!A1");
// 所有单元格都被重新计算。
spread.calculate();
spread.calculate(GC.Spread.Sheets.CalculationType.regular);
// Sheet1!A1 Sheet2!A2被计算为新数字,Sheet1!A2 Sheet1!A3也被计算。
spread.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");
// Sheet1!A1 Sheet2!A2被计算为新数字。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1!A1");
// 没有单元格被计算。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1!A2");
spread.options.calculationMode = GC.Spread.Sheets.CalculationMode.manual; // 切换到手动模式
// Sheet1!A1被计算为新数字,Sheet1!A2 Sheet1!A3被计算但未改变,Sheet2!A2在手动模式下保持脏状态。
spread.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");
// Sheet1!A1被计算为新数字,Sheet2!A2在手动模式下保持脏状态。
spread.calculate(GC.Spread.Sheets.CalculationType.regular, "Sheet1");
// Sheet2!A2因为脏而被计算。
spread.calculate(GC.Spread.Sheets.CalculationType.minimal);
| Name | Type | Description |
|---|---|---|
type? |
CalculationType |
指定计算的重建和标记脏数据类型。 |
address? |
string |
指定要标记脏数据并计算的工作表或范围。如果省略,则为整个工作簿。 注意,在自动模式下,范围外的脏依赖项也将被计算。 |
void
▸ changeSheetIndex(sheetName, targetIndex): boolean
更改工作表索引并重新排序工作表。
example
//此示例展示如何更改工作表索引。
var spread = GC.Spread.Sheets.findControl(ss);
spread.setSheetCount(5); // 工作表顺序应为 "Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"。
spread.changeSheetIndex("Sheet1", 3); // 工作表顺序应为 "Sheet2", "Sheet3", "Sheet4", "Sheet1", "Sheet5"。
| Name | Type | Description |
|---|---|---|
sheetName |
string |
工作表名称。 |
targetIndex |
number |
目标索引。 |
boolean
▸ changeSheetPosition(sheetName, targetPosition): boolean
更改工作表位置并重新排序工作表。
example
//此示例展示如何更改工作表位置。
var spread = GC.Spread.Sheets.findControl(ss);
spread.setSheetCount(5);
spread.addSheetTab(0, "tableSheet1", GC.Spread.Sheets.SheetType.tableSheet); // 工作表顺序应为 "Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "tableSheet1"。
spread.changeSheetPosition("tableSheet1", 3); // 工作表顺序应为 "Sheet1", "Sheet2", "Sheet3", "tableSheet1", "Sheet4", "Sheet5"。
| Name | Type | Description |
|---|---|---|
sheetName |
string |
工作表名称。 |
targetPosition |
number |
目标位置。 |
boolean
▸ clearCustomFunctions(): void
清除所有自定义函数。
void
▸ clearCustomNames(): void
清除自定义名称。
void
▸ clearSheetTabs(): void
清除控件中的所有工作表标签。
void
▸ clearSheets(): void
清除控件中的所有工作表。
example
//此示例使用clearSheets方法。
spread.clearSheets();
void
▸ commandManager(): CommandManager
获取命令管理器。
example
//此示例执行一个执行指定操作的命令。
spread.options.allowUndo = true;
spread.commandManager().execute({cmd: "outlineRow", sheetName: "Sheet1", index: 3, count: 5});
命令管理器。
▸ dataManager(): DataManager
获取数据管理器。
返回数据管理器。
▸ defaultPivotTableTheme(themeName?): undefined | PivotTableTheme
设置或获取默认数据透视表主题。
example
// 将默认数据透视表主题名称设置为 "custom0"
spread.defaultPivotTableTheme("custom0");
let newPivotTable = activeSheet.pivotTables.add("pivotTable1", 1, 1, 10, 5);
// 由于未指定特定主题,上面的数据透视表将使用 "custom0" 作为主题。
// 获取默认数据透视表主题
spread.defaultPivotTableTheme();
| Name | Type |
|---|---|
themeName? |
string |
undefined | PivotTableTheme
▸ defaultSlicerTheme(themeName?): undefined | SlicerStyle
设置或获取默认切片器主题。
example
// 将默认切片器主题名称设置为 "custom0"
spread.defaultSlicerTheme("custom0");
let newSlicer = activeSheet.slicers.add("slicer1", 1, 1, 10, 5);
// 由于未指定特定主题,上面的切片器将使用 "custom0" 作为主题。
// 获取默认切片器主题
spread.defaultSlicerTheme();
| Name | Type |
|---|---|
themeName? |
string |
undefined | SlicerStyle
▸ defaultTableTheme(themeName?): undefined | TableTheme
设置或获取默认表格主题。
example
// 将默认表格主题名称设置为 "custom0"
spread.defaultTableTheme("custom0");
let newable = activeSheet.tables.add("table1", 1, 1, 10, 5);
// 由于未指定特定主题,上面的表格将使用 "custom0" 作为主题。
// 获取默认表格主题
spread.defaultTableTheme();
| Name | Type |
|---|---|
themeName? |
string |
undefined | TableTheme
▸ defaultTimelineTheme(themeName?): undefined | TimelineStyle
设置或获取默认时间线主题。
example
// 将默认时间线主题名称设置为 "custom0"
spread.defaultTimelineTheme("custom0");
let newTimeline = activeSheet.timeLines.add("timeLine1", 1, 1, 10, 5);
// 由于未指定特定主题,上面的时间线将使用 "custom0" 作为主题。
// 获取默认时间线主题
spread.defaultTimelineTheme();
| Name | Type |
|---|---|
themeName? |
string |
undefined | TimelineStyle
▸ destroy(): void
销毁工作簿及其包含的所有工作表。
example
//此示例销毁工作簿实例。
spread.destroy();
void
▸ export(successCallBack?, errorCallBack?, exportOptions?): void
将对象状态导出为 excel、ssjson 或 csv 文件。
example
spread.export(function (blob) {
// 将 blob 保存到文件
saveAs(blob, fileName);
}, function (e) {
console.log(e);
}, {
fileType: GC.Spread.Sheets.FileType.excel,
includeBindingSource: true
});
| Name | Type |
|---|---|
successCallBack? |
Function |
errorCallBack? |
Function |
exportOptions? |
ExportOptions |
void
▸ focus(focusIn?): void
使工作簿组件获得或失去焦点。
example
//此示例设置 Spread 控件的焦点。
$("#button1").click(function () {
spread.focus(true);
});
| Name | Type | Description |
|---|---|---|
focusIn? |
boolean |
false 使工作簿组件失去焦点;否则获得焦点。 |
void
▸ fromJSON(workbookData, deserializationOptions?): Promise<any>
从指定的 JSON 字符串加载对象状态。
example
//此示例使用 fromJSON 方法。
activeSheet.getCell(0,0).value(123);
var jsonStr = null;
//导出
jsonStr = JSON.stringify(spread.toJSON());
//导入
var fromJSONPromise = spread.fromJSON(JSON.parse(jsonStr));
fromJSONPromise.then(() => {
alert(jsonStr);
});
| Name | Type | Description |
|---|---|---|
workbookData |
Object |
反序列化后的电子表格数据。 |
deserializationOptions? |
IDeserializationOptions |
- |
Promise<any>
▸ getActiveSheet(): Worksheet
获取活动工作表。
活动工作表实例。
▸ getActiveSheetIndex(): number
获取控件的活动工作表索引。
example
//此示例使用 getActiveSheetIndex 方法。
var index = spread.getActiveSheetIndex();
alert(index);
number
活动工作表索引。
▸ getActiveSheetTab(): any
获取活动工作表标签。
any
活动工作表标签实例。
▸ getActiveSheetTabIndex(): number
获取控件的活动工作表标签索引。
number
活动工作表标签索引。
▸ getCircularReference(): ICellsInfo[]
获取工作簿中所有循环引用单元格的信息。
example
spread.getCircularReference();
返回循环引用单元格信息对象数组 cellsInfo.row 表示单元格范围的行索引。 cellsInfo.col 表示单元格范围的列索引。 cellsInfo.rowCount 表示单元格范围的行数。 cellsInfo.colCount 表示单元格范围的列数。 cellsInfo.sheetName 表示工作表名称。
▸ getCustomFunction(name): void
获取自定义函数。
| Name | Type | Description |
|---|---|---|
name |
string |
自定义函数名称。 |
void
自定义函数。
▸ getCustomName(name): NameInfo
获取指定的自定义名称信息。
| Name | Type | Description |
|---|---|---|
name |
string |
自定义名称。 |
指定自定义名称的信息。
▸ getCustomNames(): NameInfo[]
获取所有自定义名称信息。
NameInfo[]
存储在数组中的 GC.Spread.Sheets.NameInfo 类型。
▸ getExternalReferences(includeItemDetail?): IExternalReference[]
获取当前工作簿的跨工作簿引用列表。
example
//此示例获取并更新使用的数据源。
spread.getActiveSheet().setFormula(0, 0, "='[Jackson.xlsx]Sheet1'!B6+SUM('[Petrosky.xlsx]Sheet2'!B7:B8)");
spread.getExternalReferences().forEach(item=>{
spread.updateExternalReference(item.name, spreadList[item.name], item.filePath);
})
| Name | Type | Description |
|---|---|---|
includeItemDetail? |
boolean |
指定是否包含目标单元格和源范围。默认值为 false。 |
externalReference 数组。
externalReference.name 跨工作簿引用的文件名。
externalReference.filePath 跨工作簿引用的文件路径。
▸ getHost(): HTMLElement
获取当前 Workbook 实例的主机元素。
HTMLElement
host 当前 Workbook 实例的主机元素。
▸ getNamedStyle(name): Style
从 Workbook 命名样式集合中获取具有指定名称的样式。
| Name | Type | Description |
|---|---|---|
name |
string |
要返回的样式名称。 |
返回指定的命名样式。
▸ getNamedStyles(): Style[]
从 Workbook 获取命名样式。
Style[]
命名样式的 GC.Spread.Sheets.Style 数组。
▸ getSheet(index): Worksheet
获取指定的工作表。
example
//此示例获取工作表并设置单元格前景色。
var sheet1 = spread.getSheet(1);
sheet1.getCell(0,0).value("A1").foreColor("red");
| Name | Type | Description |
|---|---|---|
index |
number |
要返回的工作表索引。 |
指定的工作表。
▸ getSheetCount(): number
获取工作表的数量。
example
//此示例使用getSheetCount方法。
var index = spread.getSheetCount();
alert(index);
number
工作表的数量。
▸ getSheetFromName(name): Worksheet
获取指定名称的工作表。
example
//此示例获取工作表并设置单元格前景色。
var sheet1 = spread.getSheetFromName("Sheet2");
sheet1.getCell(0,0).value("A1").foreColor("red");
| Name | Type | Description |
|---|---|---|
name |
string |
工作表名称。 |
指定名称的工作表。
▸ getSheetIndex(name): number
获取指定名称的工作表索引。
example
//此示例使用getSheetIndex方法。
spread.setSheetCount(5);
var index = spread.getSheetIndex("Sheet2");
alert(index); // 1
| Name | Type | Description |
|---|---|---|
name |
string |
工作表名称。 |
number
基于Worksheet集合的工作表索引。
▸ getSheetPosition(name): number
获取指定名称的工作表标签位置。
example
//此示例使用getSheetPosition方法。
spread.setSheetCount(5);
spread.addSheetTab(0, "tableSheet1", GC.Spread.Sheets.SheetType.tableSheet);
var position = spread.getSheetPosition("tableSheet1");
alert(position); // 5
| Name | Type | Description |
|---|---|---|
name |
string |
工作表标签名称。 |
number
基于Worksheet和TableSheet集合的工作表标签位置。
▸ getSheetTab(indexOrName): any
通过索引或名称获取指定的工作表标签。
| Name | Type | Description |
|---|---|---|
indexOrName |
string | number |
要返回的工作表标签的索引或名称。 |
any
指定的工作表标签。
▸ getSheetTabCount(): number
获取工作表标签的数量。
number
工作表标签的数量。
▸ getSheetTabIndex(name): number
获取指定名称的工作表标签索引。
example
//此示例使用getSheetTabIndex方法。
spread.setSheetCount(5);
spread.addSheetTab(0, "tableSheet1", GC.Spread.Sheets.SheetType.tableSheet);
var index = spread.getSheetTabIndex("tableSheet1");
alert(index); // 0
| Name | Type | Description |
|---|---|---|
name |
string |
工作表标签名称。 |
number
基于TabSheet集合的工作表标签索引。
▸ hitTest(x, y): IWorkbookHitTestInformation
执行点击测试。
example
//此示例使用 hitTest 方法。
window.onload = function(){
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:3});
var activeSheet = spread.getActiveSheet();
$("#ss").click(function (e) {
//从既不是固定行/列也不是行/列表头的常规单元格的鼠标点击点获取单元格索引。
var offset = $("#ss").offset();
var x = e.pageX - offset.left;
var y = e.pageY - offset.top;
var target = spread.hitTest(x, y);
if(target.worksheetHitInfo) {
if(target.worksheetHitInfo.hitTestType === 0) {
str = 'corner';
} else if (target.worksheetHitInfo.hitTestType === 1) {
str = 'colHeader';
} else if (target.worksheetHitInfo.hitTestType === 2) {
str = 'rowHeader';
} else {
str = 'viewport';
}
} else if(target.tabStripHitInfo) {
if(target.tabStripHitInfo.navButton){
str = target.tabStripHitInfo.navButton;
} else if(target.tabStripHitInfo.sheetTab) {
str = target.tabStripHitInfo.sheetTab.sheetName;
} else if(target.tabStripHitInfo.resize === true) {
str = "resize";
} else {
str = "blank";
}
} else if(target.horizontalScrollBarHitInfo) {
str = target.horizontalScrollBarHitInfo.element;
} else if(target.verticalScrollBarHitInfo) {
str = target.verticalScrollBarHitInfo.element;
} else if(target.footerCornerHitInfo) {
str = target.footerCornerHitInfo.element;
}
alert(str);
});
}
| Name | Type | Description |
|---|---|---|
x |
number |
相对于电子表格水平轴的 x 坐标。 |
y |
number |
相对于电子表格垂直轴的 y 坐标。 |
点击测试信息。如果选择工作表,则返回工作表信息。该信息包含 x、y 和 worksheetHitInfo; 如果选择工作表标签栏,则返回工作表标签栏信息。该信息包含 x、y 和 tabStripHitInfo; 如果选择水平滚动条,则返回水平滚动条信息。该信息包含 x、y 和 horizontalScrollBarHitInfo; 如果选择垂直滚动条,则返回垂直滚动条信息。该信息包含 x、y 和 verticalScrollBarHitInfo; 如果选择页脚角落,则返回页脚角落信息。该信息包含 x、y 和 footerCornerHitInfo。
▸ import(file, successCallback?, errorCallback?, importOptions?): void
从 excel 或 ssJson 或 csv 文件或 javascript 文件导入对象状态。
example
//此示例使用 import 方法。
//获取文件 blob。
var file = document.getElementById("importFileName").files[0];
// 导入
spread.import(file, function () {
// 成功回调以执行某些操作
}, function (e) {
console.log(e); // 错误回调
}, {
fileType: GC.Spread.Sheets.FileType.excel
});
| Name | Type | Description |
|---|---|---|
file |
File |
用于导入的 ssJson 或 csv 或 Excel 文件或 javascript 文件。 |
successCallback? |
Function |
- |
errorCallback? |
Function |
- |
importOptions? |
ImportOptions |
- |
void
▸ injectAI(callbackOrEnv): void
将 AI 回调函数或环境注入到工作簿中。
example
// 1. 如果您不担心暴露 API 密钥,则注入环境
workbook.injectAI({
model: 'your model',
key: 'your-api-key',
basePath: 'your base path'
});
// 2. 如果您想控制请求主体并自己发送到 AI 服务,则注入请求回调
const httpCallback = async (requestBody) => {
const AI_BATH_PATH = 'your base path';
const AI_KEY = 'your api key';
requestBody.model = 'your model name';
const response = await fetch(AI_BASE_PATH, {
method: 'POST',
headers: {
'Authorization': `Bearer ${AI_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(requestBody)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response;
};
workbook.injectAI(httpCallback);
// 3. 如果您想将请求发送到您的服务器,然后发送到 AI 服务,则注入请求回调
const serverCallback = async (requestBody) => {
requestBody.model = 'your model name';
let response = await fetch('/api/queryAI', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(requestBody)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response;
}
workbook.injectAI(serverCallback);
| Name | Type | Description |
|---|---|---|
callbackOrEnv |
AIRequestCallback | IAIEnvironment |
AI 请求的回调函数,它将发送 AI 请求的主体到 AI 请求的环境,SpreadJS 将发送请求到 AI 服务。 |
void
▸ invalidateLayout(): void
更新控件布局信息。
example
//此示例更新布局。
spread.invalidateLayout();
spread.repaint();
void
▸ isPaintSuspended(): boolean
获取电子表格绘制是否已暂停。
boolean
▸ nextControl(value?): any
获取或设置由 GC.Spread.Sheets.Actions.selectNextControl 和 GC.Spread.Sheets.Actions.moveToNextCellThenControl 使用的下一个控件。
| Name | Type | Description |
|---|---|---|
value? |
HTMLElement |
下一个控件。该控件必须具有 focus 方法。 |
any
如果未设置值,则返回下一个控件;否则返回电子表格。
▸ open(file, successCallback?, errorCallback?, openOptions?): void
从 sjs 压缩文件加载对象状态。
example
//此示例使用 open 方法。
//获取文件 blob。
var file = document.getElementById("importFileName").files[0];
// 导入
spread.open(file, function () {
// 成功回调以执行某些操作
}, function (e) {
console.log(e); // 错误回调
}, { openMode: GC.Spread.Sheets.OpenMode.lazy });
| Name | Type | Description |
|---|---|---|
file |
File |
压缩的电子表格数据文件。 |
successCallback? |
Function |
- |
errorCallback? |
Function |
- |
openOptions? |
OpenOptions |
- |
void
▸ pageInfo(sheetIndex?): any
获取工作表的页面信息
example
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
spread.suspendPaint();
var sheet = spread.getActiveSheet();
for(var i=0;i<20;i++){
for(var j=0;j<20;j++){
sheet.setValue(i,j,"Row"+i+"_Column"+j);
}
}
var pageInfos = spread.pageInfo(0);
console.table(pageInfos.pages);
| Name | Type | Description |
|---|---|---|
sheetIndex? |
number |
工作表索引。 |
any
返回工作表的页面信息,如果忽略工作表索引,则返回所有工作表的页面信息数组
▸ previousControl(value?): any
获取或设置由 GC.Spread.Sheets.Actions.selectPreviousControl 和 GC.Spread.Sheets.Actions.moveToPreviousCellThenControl 使用的前一个控件。
| Name | Type | Description |
|---|---|---|
value? |
HTMLElement |
前一个控件。该控件必须具有 focus 方法。 |
any
如果未设置值,则返回前一个控件;否则返回电子表格。
▸ print(sheetIndex?): void
打印指定的工作表。
| Name | Type | Description |
|---|---|---|
sheetIndex? |
number |
工作表索引。如果忽略工作表索引,则打印所有可见的工作表。 |
void
▸ refresh(): void
手动刷新 Workbook 对象的布局和渲染。
example
//此示例使用 refresh 方法。
spread.refresh();
void
▸ removeCustomFunction(name): void
移除自定义函数。
| Name | Type | Description |
|---|---|---|
name |
string |
自定义函数名称。 |
void
▸ removeCustomName(name): void
移除指定的自定义名称。
example
//此示例使用 removeCustomName 方法。
activeSheet.setValue(0, 0, 1);
activeSheet.setValue(0, 1, 2);
activeSheet.setValue(0, 2, 3);
spread.addCustomName("customName1","=12", 0, 0);
activeSheet.setFormula(1, 0, "customName1");
//spread.removeCustomName("customName1");
| Name | Type | Description |
|---|---|---|
name |
string |
自定义名称。 |
void
▸ removeNamedStyle(name): void
从工作簿命名样式集合中移除具有指定名称的样式。
example
var namedStyle = new GC.Spread.Sheets.Style();
namedStyle.name = "style1";
namedStyle.backColor = "green";
spread.addNamedStyle(namedStyle);
activeSheet.setStyleName(1, 1, "style1"); // 单元格(1,1)的背景色为绿色
activeSheet.setStyleName(2, 1, "style1");
var style = spread.getNamedStyle("style1");
style.foreColor = "red"; // 命名样式的前景色为红色
activeSheet.repaint(); // 单元格(1,1)和单元格(2,1)的前景色为红色
activeSheet.getCell(1,1).value("test");
$("#button1").click(function () {
spread.removeNamedStyle("style1");
});
| Name | Type | Description |
|---|---|---|
name |
string |
要移除的样式名称。 |
void
▸ removeSheet(index): void
移除指定的工作表。
example
//此示例从电子表格中移除一个工作表。
spread.setSheetCount(5);
spread.removeSheet(0);
| Name | Type | Description |
|---|---|---|
index |
number |
要移除的工作表索引。 |
void
▸ removeSheetTab(indexOrName): void
通过索引或名称移除指定的工作表标签。
| Name | Type | Description |
|---|---|---|
indexOrName |
string | number |
要移除的工作表标签的索引或名称。 |
void
▸ removeSparklineEx(name): void
从SparklineEx集合中移除一个SparklineEx。
| Name | Type | Description |
|---|---|---|
name |
string |
要移除的SparklineEx的名称。 |
void
▸ repaint(): void
重绘工作簿控件。
example
//此示例更新布局。
spread.invalidateLayout();
spread.repaint();
void
▸ resumeCalcService(recalcAll?): void
恢复计算服务。
example
//此示例使用resumeCalcService方法。
spread.suspendCalcService(false);
activeSheet.setValue(0,0,1);
activeSheet.setValue(0,1,2);
activeSheet.setValue(0,2,10);
activeSheet.getCell(1,1).formula("=SUM(A1:C1)");
spread.resumeCalcService(true);
| Name | Type | Description |
|---|---|---|
recalcAll? |
boolean |
指定是否重新计算所有公式。 |
void
▸ resumeEvent(): void
恢复事件。
example
//此示例演示了暂停和恢复事件。
activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, function (sender, args) {
if (args.propertyName === "value") {
alert(activeSheet.getValue(args.row, args.col));
}
});
spread.suspendEvent();
activeSheet.setValue(0, 0, "111");
spread.resumeEvent();
activeSheet.setValue(1, 1, "222");
void
▸ resumePaint(): void
恢复活动工作表和标签栏的绘制。
void
▸ save(successCallBack?, errorCallBack?, saveOptions?): void
将 spreadJS 状态保存为 sjs 文件。
example
spread.save(function (blob) {
// 将 blob 保存到文件
saveAs(blob, fileName);
}, function (e) {
console.log(e);
}, { includeUnusedNames: false });
| Name | Type | Description |
|---|---|---|
successCallBack? |
Function |
保存 spreadJS 状态完成时的成功回调函数,接受 Blob 作为参数。 |
errorCallBack? |
Function |
保存 spreadJS 状态出错时的错误回调函数。 |
saveOptions? |
SaveOptions |
保存选项。 |
void
▸ savePDF(successCallback, errorCallback, options?, sheetIndex?): void
将指定工作表导出为 PDF。
| Name | Type | Description |
|---|---|---|
successCallback |
Function |
导出成功时调用的函数。function (blob) 。 |
errorCallback |
Function |
发生错误时调用的函数。异常参数对象结构为 { errorCode: GC.Spread.Sheets.PDF.ErrorCode, errorMessage: string}。 |
options? |
Object |
- |
sheetIndex? |
number |
工作表索引。如果忽略工作表索引,则导出所有可见工作表。 |
void
▸ search(searchCondition): SearchResult
使用指定的条件在指定工作表的单元格中搜索指定的文本。
example
//此示例使用指定的搜索条件搜索活动工作表。
activeSheet.getCell(2,3).value("testSearch");
var searchCondition = new GC.Spread.Sheets.Search.SearchCondition();
searchCondition.searchString = "testSearch";
searchCondition.startSheetIndex = spread.getActiveSheetIndex();
searchCondition.endSheetIndex = spread.getActiveSheetIndex();
searchCondition.searchOrder = GC.Spread.Sheets.Search.SearchOrder.nOrder;
searchCondition.searchTarget = GC.Spread.Sheets.Search.SearchFoundFlags.cellText;
searchCondition.searchFlags = GC.Spread.Sheets.Search.SearchFlags.ignoreCase| GC.Spread.Sheets.Search.SearchFlags.useWildCards;
var searchresult= spread.search(searchCondition);
var str ="[searchFoundFlag:"+ searchresult.searchFoundFlag+",\r\n foundSheetIndex:"+searchresult.foundSheetIndex+",foundRowIndex:" +
searchresult.foundRowIndex+", foundColumnIndex:"+searchresult.foundColumnIndex+", foundString:"+searchresult.foundSheetIndex+"]";
alert(str);
| Name | Type | Description |
|---|---|---|
searchCondition |
SearchCondition |
搜索条件。 |
搜索结果。
▸ setActiveSheet(name): void
通过名称设置活动工作表。
example
//此示例设置活动工作表。
spread.setSheetCount(3);
spread.setActiveSheet("Sheet2");
| Name | Type | Description |
|---|---|---|
name |
string |
要设置为活动工作表的工作表名称。 |
void
▸ setActiveSheetIndex(value): void
设置控件的活动工作表索引。
example
//此示例使用 setActiveSheetIndex 方法。
spread.setActiveSheetIndex(1);
| Name | Type | Description |
|---|---|---|
value |
number |
活动工作表索引。 |
void
▸ setActiveSheetTab(indexOrName): void
通过索引或名称设置活动工作表标签。
| Name | Type | Description |
|---|---|---|
indexOrName |
string | number |
要设置为活动工作表标签的工作表标签的索引或名称。 |
void
▸ setSheetCount(count): void
设置工作表数量。
example
spread.setSheetCount(5);
| Name | Type | Description |
|---|---|---|
count |
number |
工作表数量。 |
void
▸ startSheetIndex(value?): any
获取或设置电子表格中显示的第一个工作表的索引。
| Name | Type | Description |
|---|---|---|
value? |
number |
电子表格中显示的第一个工作表的索引。 |
any
如果未设置值,则返回电子表格中显示的第一个工作表的索引;否则返回电子表格。
▸ suspendCalcService(ignoreDirty?): void
暂停计算服务。
example
//此示例使用 suspendCalcService 方法。
spread.suspendCalcService(false);
activeSheet.setValue(0,0,1);
activeSheet.setValue(0,1,2);
activeSheet.setValue(0,2,10);
activeSheet.getCell(1,1).formula("=SUM(A1:C1)");
spread.resumeCalcService(true);
| Name | Type | Description |
|---|---|---|
ignoreDirty? |
boolean |
指定是否使依赖单元格失效。 |
void
▸ suspendEvent(): void
暂停事件。
example
//此示例暂停和恢复事件。
activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, function (sender, args) {
if (args.propertyName === "value") {
alert(activeSheet.getValue(args.row, args.col));
}
});
spread.suspendEvent();
activeSheet.setValue(0, 0, "111");
spread.resumeEvent();
activeSheet.setValue(1, 1, "222");
void
▸ suspendPaint(): void
暂停活动工作表和标签栏的绘制。
void
▸ toJSON(serializationOption?): Object
将对象状态保存为 JSON 字符串。
example
activeSheet.getCell(0,0).value(123);
var jsonStr = null;
// 导出
jsonStr = JSON.stringify(spread.toJSON());
// 导入
spread.fromJSON(JSON.parse(jsonStr));
alert(jsonStr);
| Name | Type | Description |
|---|---|---|
serializationOption? |
ISerializationOption |
序列化选项。 |
Object
电子表格数据。
▸ unbind(type, fn?): void
移除 Workbook 的事件绑定。
example
//此示例移除事件绑定。
activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, function (sender, args) {
if (args.propertyName === "value") {
alert(activeSheet.getValue(args.row, args.col));
}
});
activeSheet.setValue(0, 0, "111");
spread.unbind(GC.Spread.Sheets.Events.CellChanged);
//spread.unbindAll(); //取消所有事件的监控。
activeSheet.setValue(1, 0, "222");
activeSheet.setValue(2, 0, "333");
activeSheet.setValue(3, 0, "444");
| Name | Type | Description |
|---|---|---|
type |
string |
事件类型。 |
fn? |
Function |
指定在事件发生时运行的函数。 |
void
▸ unbindAll(): void
移除 Workbook 的所有事件绑定。
example
//此示例移除事件绑定。取消注释 unbindAll 方法以移除所有事件绑定。
activeSheet.bind(GC.Spread.Sheets.Events.CellChanged, function (sender, args) {
if (args.propertyName === "value") {
alert(activeSheet.getValue(args.row, args.col));
}
});
activeSheet.setValue(0, 0, "111");
spread.unbind(GC.Spread.Sheets.Events.CellChanged);
//spread.unbindAll(); //取消所有事件的监控。
activeSheet.setValue(1, 0, "222");
activeSheet.setValue(2, 0, "333");
activeSheet.setValue(3, 0, "444");
void
▸ undoManager(): UndoManager
获取撤销管理器。
撤销管理器。
▸ updateExternalReference(linkInfo, data?, filePath?, isMergeUpdate?): void
使用工作簿 JSON 或来自 GC.Spread.Sheets.IO.getPartialValues 的 successCallback 结果的外部值设置或更新外部源的数据。
example
// 此示例使用工作簿 JSON 设置外部源。
spread.getActiveSheet().setFormula(0, 0, "[calc.xlsx]Sheet1!A1"); // spread 单元格 A1 的值为 #REF!
spread2.getActiveSheet().setFormula(0, 0, "=123+1"); \xa0// spread2 单元格 A1 的值为 124
spread.updateExternalReference("calc.xlsx", spread2.toJSON()); // spread 单元格 A1 的值为 124
// 使用简单的 JSON 数据设置数据:
spread.getActiveSheet().setFormula(0, 0, "=SUM([calc.xlsx]Sheet1!A1:B2"); \xa0// spread 单元格 A1 的值为 #REF!
spread.updateExternalReference("calc.xlsx", {"Sheet1":[[1, 2],[1, 3]]}); \xa0// spread 单元格 A1 的值为 7
spread.updateExternalReference("calc.xlsx", {"Sheet1":{0:{0:10, 1:10}, 1:{0:10, 1:10}}}); \xa0// spread 单元格 A1 的值为 40
spread.updateExternalReference("calc.xlsx", {"Sheet1":{1:{0:2, 1:2}}}, null, true); \xa0// spread 单元格 A1 的值为 24(合并更新后)。
// 此示例使用 GC.Spread.Sheets.IO.getPartialValues 的 successCallback 结果设置外部值
let refList = spread.getExternalReferences(true);
GC.Spread.Sheets.IO.getPartialValues(refList, getFile, (externalValues) => {
// 成功回调
spread.updateExternalReference(externalValues);
}, (errorMsg) => {
// 错误回调
console.log(errorMsg);
});
| Name | Type | Description |
|---|---|---|
linkInfo |
string | ExternalPartialValues |
字符串类型是外部源的文件名,通常以 ".xlsx" 结尾。另一种类型应该是从 GC.Spread.Sheets.IO.getPartialValues 的回调中获取的外部部分值数组。 |
data? |
object |
- |
filePath? |
string |
- |
isMergeUpdate? |
boolean |
指示是否通过合并进行更新。如果不是 true,整个外部工作表数据将被覆盖。 |
void