用于管理电子表格状态和操作的 Zustand store hook。
| 属性 | 类型 | 描述 |
|---|---|---|
sheets |
DataProxy[] |
所有表格数组 |
activeSheetIndex |
number |
当前活动表格索引 |
isEditing |
boolean |
是否正在编辑单元格 |
editingCell |
{ ri: number; ci: number } | null |
正在编辑的单元格 |
editingText |
string |
编辑器中的文本 |
contextMenuPosition |
{ x: number; y: number } | null |
右键菜单位置 |
showContextMenu |
boolean |
右键菜单是否可见 |
updateCount |
number |
用于触发重渲染的计数器 |
getActiveSheet()返回当前活动的 DataProxy 实例。
getSelection()返回当前选区范围。
addSheet(name?, active?)添加新表格。
deleteSheet(index)按索引删除表格。
switchSheet(index)按索引切换表格。
renameSheet(index, name)重命名表格。
setCellText(ri, ci, text, state?)设置单元格文本内容。
setCellStyle(property, value)设置选中单元格的样式。
setSelection(ri, ci, multiple?)设置选中单元格。
setSelectionEnd(ri, ci)设置选区的结束点。
startEditing(initialChar?)开始编辑选中的单元格。
stopEditing()停止编辑并保存内容。
setEditingText(text)更新编辑器中的文本。
openContextMenu(x, y)在指定位置打开右键菜单。
closeContextMenu()关闭右键菜单。
undo()撤销上一次操作。
redo()重做上一次撤销的操作。
copy()复制选中单元格。
cut()剪切选中单元格。
paste(what?)从剪贴板粘贴。
loadData(data)加载数据到电子表格。
getData()获取当前电子表格数据。
triggerChange()手动触发变更事件。
addChangeListener(listener)添加变更监听器。
removeChangeListener(listener)移除变更监听器。
useActiveSheet()直接获取活动表格。
useSelection()获取当前选区。
useIsEditing()检查是否正在编辑。
useUpdateCount()获取更新计数用于重渲染追踪。