{{ target: sheet-api }}
VTableSheet组件支持的方法如下:
激活指定sheet
activateSheet: (sheetKey: string) => void
添加新的sheet
addSheet: (sheet: ISheetDefine) => void
删除指定sheet
removeSheet: (sheetKey: string) => void
获取工作表数量
getSheetCount: () => number
获取指定工作表定义
getSheet: (sheetKey: string) => ISheetDefine | null
获取所有工作表定义
getAllSheets: () => ISheetDefine[]
获取当前活动的WorkSheet实例
getActiveSheet: () => WorkSheet | null
保存所有数据为配置
saveToConfig: () => IVTableSheetOptions
导出当前sheet到文件
exportSheetToFile: (fileType: 'csv' | 'xlsx', allSheets: boolean = true) => void
导入文件到当前sheet
/** clearExisting 是否清除现有的 sheet(默认 true 表示替换模式).设置false表示追加模式 */
importFileToSheet: (options: { clearExisting?: boolean } = { clearExisting: true }) => void
导出指定sheet的数据
exportData: (sheetKey: string) => any[][]
导出所有sheet的数据
exportAllData: () => any[][]
调整表格大小
resize: () => void
释放资源
release: () => void
获取容器元素
getContainer: () => HTMLElement
获取公式管理器
getFormulaManager: () => FormulaManager
表格事件列表,可以根据实际需要,监听所需事件,实现自定义业务。
具体使用方式:
import { WorkSheetEventType } from '@visactor/vtable-sheet';
// 使用WorkSheet实例监听事件
worksheet.on(WorkSheetEventType.CELL_CLICK, (args) => {
console.log('单元格被选中:', args);
});
支持的事件类型:
export enum WorkSheetEventType {
// 单元格事件
CELL_CLICK = 'cell-click',
CELL_VALUE_CHANGED = 'cell-value-changed',
// 选择范围事件
SELECTION_CHANGED = 'selection-changed',
SELECTION_END = 'selection-end'
}
如果想要监听VTable组件的各个事件,可以通过接口获取到VTable的实例,然后通过实例监听事件 具体使用方式:
const tableInstance = sheetInstance.activeWorkSheet.tableInstance;// 获取激活的工作表的实例
tableInstance.on('mousedown_cell', (args) => console.log(CLICK_CELL, args));
单元格点击事件
事件回传参数:
{
/** 行索引 */
row: number;
/** 列索引 */
col: number;
/** 单元格内容 */
value?: CellValue;
/** 单元格DOM元素 */
cellElement?: HTMLElement;
/** 原始事件对象 */
originalEvent?: MouseEvent | KeyboardEvent;
}
单元格值变更事件
事件回传参数:
{
/** 行索引 */
row: number;
/** 列索引 */
col: number;
/** 新值 */
newValue: CellValue;
/** 旧值 */
oldValue: CellValue;
/** 单元格DOM元素 */
cellElement?: HTMLElement;
/** 是否由用户操作引起 */
isUserAction?: boolean;
/** 是否由公式计算引起 */
isFormulaCalculation?: boolean;
}
选择范围变更事件
事件回传参数:
{
/** 选择区域 */
ranges?: Array<{
start: {
row: number;
col: number;
};
end: {
row: number;
col: number;
};
}>;
/** 选择的单元格数据 */
cells?: Array<
Array<{
row: number;
col: number;
value?: CellValue;
}>
>;
/** 原始事件对象 */
originalEvent?: MouseEvent | KeyboardEvent;
}
选择结束事件(拖拽选择完成时触发)
事件回传参数:
{
/** 选择区域 */
ranges?: Array<{
start: {
row: number;
col: number;
};
end: {
row: number;
col: number;
};
}>;
/** 选择的单元格数据 */
cells?: Array<
Array<{
row: number;
col: number;
value?: CellValue;
}>
>;
/** 原始事件对象 */
originalEvent?: MouseEvent | KeyboardEvent;
}