2016-12-28 42 views
0

我有一个使用handsontable的网页。在这个页面中,我试图以编程的方式将一些数据放入电子表格并执行一些公式。我的公式工作正常,直到一个值包含逗号。例如,在this JSFiddle,我有以下代码:Handsontable - 计算包含逗号的值

var hot = null; 

initHot(); 
loadFormulas(); 
loadData(); 

function initHot() { 
    var container = document.getElementById('example'); 

    var hCols = [ 'A', 'B', 'C', 'D', 'E' ]; 
    var hRows = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ]; 
    var sdata = [ 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ], 
    [ 0, 0, 0, 0, 0, 0 ] 
    ]; 

    hot = new Handsontable(container, { 
    startRows: hRows.length, 
    rowHeaders: hRows, 
    startCols: hCols.length, 
    colHeaders: hCols, 
    data: sdata, 
    formulas: true, 
    height: 300 
    }); 
} 

function loadFormulas() { 
    // In my app, this happens async, but I'm just plugging it in here to demo it. 
    hot.setDataAtCell(2, 0, '=A1-A2'); 
    hot.setDataAtCell(9, 0, '=SUM(A3:A9)'); 
} 

function loadData() { 
    // In my app, this happens at runtime, but I'm just plugging it in here to demo it. 
    hot.setDataAtCell(0, 0, '1000'); 
    hot.setDataAtCell(1, 0, '3000'); 

    hot.setDataAtCell(3, 0, '5000'); 
    hot.setDataAtCell(4, 0, '6500'); 
    hot.setDataAtCell(5, 0, '7000'); 
    hot.setDataAtCell(6, 0, '8000'); 
    hot.setDataAtCell(7, 0, '9000'); 
    hot.setDataAtCell(8, 0, '10,000'); 
} 

细胞A10应当导致值43500.然而,它计算因为在细胞A9逗号的不正确。当逗号存在时,Handsontable将单元格中的值视为零。如果将10,000更改为10000,则计算得当。如何在值中支持逗号以使公式仍然正确执行?

回答

0

由于localmachine的区域设置,您的电子表格可能无法正确计算。尝试改变“。”用“,”或更改日期 - 时间 - 本地机器上的数字格式。

+0

我的机器是美国。根据文档,默认语言环境为US:https://docs.handsontable.com/pro/1.8.2/demo-numeric.html – user70192