Handsontable保存公式值

时间:2015-08-18 13:38:47

标签: jquery handsontable

我希望将handontable集成到我的网站,但是有一个问题,当我试图保存由RuleJS(公式支持)创建的数据时,脚本给我一个公式,如(= $ A1 * $ B1)< / strong>即可。我试图得到简单的数学结果乘以价格和货币。如何保存表值,而不是来自sourse?

workig代码在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);
});

});

谢谢!

1 个答案:

答案 0 :(得分:3)

对象是属性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