WORKER / WASM DEMO

可扩展的自定义公式

注册宿主函数,让进行中的异步计算在 Promise 完成前保持忙碌状态。

试试这个

  1. 在公式单元格输入自定义函数。
  2. 在异步工作等待时观察忙碌状态。
  3. 修改参数,让 worker 重新计算结果。

它是怎么做到的

自定义公式注册是宿主到引擎的契约。UI 反映引擎状态,不伪造客户端 loading,因此错误和异步结果共用同一条公式生命周期。

查看源码

import type {
  WorkerWorkbookBackendSheet,
  WorkerWorkbookBackendSheetInput,
  WorkerWorkbookClient,
} from '@einfach/solid-excel/vnext'

export const customFormulaSheets: WorkerWorkbookBackendSheetInput[] = [
  { id: 'items', name: 'Items' },
]

function text(client: WorkerWorkbookClient, sheet: number, address: string, value: string) {
  return client.setCell(sheet, address, { type: 'text', value })
}

function number(client: WorkerWorkbookClient, sheet: number, address: string, value: number) {
  return client.setCell(sheet, address, { type: 'number', value })
}

function formula(client: WorkerWorkbookClient, sheet: number, address: string, value: string) {
  return client.setFormulaDetailed(sheet, address, value)
}

/** Seeds formula calls before the host registrations trigger engine re-evaluation. */
export async function seedCustomFormulasWorkbook(