Handsontable 保存公式值
Posted
技术标签:
【中文标题】Handsontable 保存公式值【英文标题】:Handsontable Save formula values 【发布时间】: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);
);
);
谢谢!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Handsontable 保存公式值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Handson 表格单元格中添加垫子图标或电子表格图标?
请问,jQuery Handsontable控件如何像excel一样,设置公式,让某个单元格的值自动算出来?
自定义渲染器功能在 Handsontable 插件中不起作用