valor-sheet-parser

最基础的计算: CellEvaluator, 做两件事:

Usage no npm install needed!

<script type="module">
  import valorSheetParser from 'https://cdn.skypack.dev/valor-sheet-parser';
</script>

README

分析

CellEvaluator

最基础的计算: CellEvaluator, 做两件事:

  1. 递归(或非递归) 地计算 cell 公式, 返回 {id: ParsedResult}, 并记录 know 和 results
  2. 如果 cell.value<>oldCell.value, 则 propagate 到相关单元格(hostCell) 每个单元格执行 1 最终得到的 results: {id:ParsedResult} 即是最终结果, 注意可能影响很多单元格

两种应用场景: 场景 1: 递归重算, 比如 全部重算 & 增删行列 场景 2: 简单计算, 比如 在全部重算完成后, 重新输入一个新公式

对外提供两个方法: // 初始化 const ce = new CellEvaluator(state) // 重算 ( 一般不单独使用 ) ce.evaluate(recursive?:boolean); // 传播 (什么时候用: 如果只是简单输入了 3 这样的 value, 则仅需 propagate) ce.propagate(recursive?:boolean); // 重算并传播 ( 除开上面的用法 ) ce.evaluateAndPropagate(recursive?:boolean); // 获取最终结果, 并重置 results/know ce.getResults(): {id: ParsedResult}

SheetEvaluator

内部包含一个 CellEvaluator 仅需 简单地, 对每个 cell 调用 evaluateAndPropagate, 获取最终 results


特性

  • 基于typescript, 生成es5目标文件
  • 支持jest, 直接在src目录下*.test.ts, 然后 yarn test

何时使用

  • 你希望创建一个可重用的工具方法库(我们通常叫utils)
  • 希望使用typescript
  • 这个库通常可同时供node端与browser端使用
  • 也许你还希望发布到npm

如何使用

git clone https://github.com/g770728y/create-utils-library.git <your-project-name>

vi ./package.json  <== 修改package.json中的project信息
yarn

yarn start

watch模式动态构建

yarn test

watch模式动态测试

yarn build

npm publish