【问题标题】:Handsontable Save formula valuesHandsontable 保存公式值
【发布时间】:2015-11-11 11:41:33
【问题描述】:

我想将 handsontable 集成到我的网站,但是遇到了一个问题,当我尝试保存由 RuleJS(公式支持)创建的数据时,脚本会给我一个公式,例如 (=$A1*$B1)。我试图得到简单的数学乘以价格和货币的结果。如何保存表值,而不是从源中保存?

工作代码在 jsfiddle 上: http://jsfiddle.net/zetwin/qhjuuk5j/4/

document.addEventListener("DOMContentLoaded", function() {

  var people = [ 
                {base_price :'99', price:'13', unit:'=A1*B1'},
                {base_price :'89.99', price:'13.43', unit:'=A2*B2'}
                ],
example1 = document.getElementById('example1'),
settings1;

  settings1 = {
    data: people,
    formulas: true,
    rowHeaders: true,
    colHeaders: true,
    colHeaders: [
    'Price', 'Currency', 'USD'],
    columns: [
      {data: 'base_price'},
      {data: 'price'},
      {data: 'unit'}
    ]
  };

  var hot = new Handsontable(example1, settings1);

$('.push').click(function () {
    data = hot.getData();
    console.log(data);
    //$('.result').text(data);
});

});

谢谢!

【问题讨论】:

    标签: jquery handsontable


    【解决方案1】:

    对象是一个属性 Handsontable plugin.matrix.data - 一个单元格列表,根据表格中的公式计算得出。每个单元格都有一个属性值 - 这是显示的结果。要获取所有数据必须使用函数:Handsontable.plugin.helper.cellValue 或 Handsontable.plugin.helper.cellRangeValue。

    例如对于您的 jsfiddle:

    从单元格的右上角获取:

    data = hot.plugin.helper.cellValue ('C1');
    console.log (data);
    

    48168.89000000001 获取所有单元格的值(一个列表):

    data = hot.plugin.helper.cellRangeValue ('A1', 'C2');
    console.log (data);
    

    数组 [6]: 0: 625.57 1: 656.95 2: 77 3: 77 4: 48168.89000000001 5: 50585.15 长度:6

    我认为这是一个比 cellRangeValue 更好的方法。但是在此基础上我们可以写一些更舒服的东西。看。 Handsontable.plugin.helper.cellRangeValue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 2018-09-04
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多