我希望将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);
});
});
谢谢!
答案 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