【问题标题】:Handsontable and hot-formula-parserHandsontable 和热公式解析器
【发布时间】:2018-09-04 13:47:35
【问题描述】:

是否可以将自定义函数 ('ADD_5') 包含/注册到 handsontable 中?

以下示例正在运行,从 B2 到 B4 的所有单元格值都等于 42。只有 B5 = ADD_5(37) 返回 #NAME?而不是 42。

我必须在哪里定义函数并将其添加到表的现有解析器中?

<div id="example1" class="handsontable"></div>

<script data-jsfiddle="example1">
  $(document).ready(function () {
    var data1 = [
      ['Number', 'Answer'],
      [10, 42],
      [10, '=SUM(A2:A5)'],
      [10, '=A2 + A3 + A4 + A5'],
      [12, '=ADD_5(37)']
    ];
    var container1 = $('#example1');
    container1.handsontable({
      data: data1,
      minSpareRows: 1,
      colHeaders: true,
      rowHeaders: true,
      contextMenu: true,
      manualColumnResize: true,
      formulas: true
    });
    parser.setFunction('ADD_5', function(params) {
      return params[0] + 5;
    });
  });
</script>

任何帮助将不胜感激。

【问题讨论】:

    标签: handsontable


    【解决方案1】:

    According to official doc:

    公式插件允许 Handsontable 处理在提供的数据中定义的公式表达式。这个插件使用了一个公式解析器库,它采用了来自 formula.js 的大部分函数。

    然后您需要将公式添加到formula.js

    【讨论】:

    • 非常感谢。我可以通过在 formula.js 中添加 exports.ADD_5=function(){...} 和 default=[ "ABS","ACCRINT", "ADD_5" ... 来创建自己的函数 - 这不是最好的解决方案但至少它有效。
    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2019-06-25
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多