2016-12-28 27 views
0

handsontableを使用するWebページがあります。このページでは、プログラムによってスプレッドシートにデータを入れていくつかの数式を実行しようとしています。私の数式は値がコンマを含むまでうまくいく。例えば、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しかし、それがため、セルA9にコンマの誤っ計算値43500.をもたらすべきです。カンマがある場合、Handsontableはセル内の値をゼロとして表示します。 10,000〜10000を変更すると、正しく計算されます。数式が正しく実行されるような値でコンマをサポートするにはどうすればよいですか?

答えて

0

あなたのスプレッドシートはおそらくlocalmachineの地域設定のために正しく計算されていません。変更してみてください。 " "、"を使用するか、ローカルマシン上でDate - Time - Number形式を変更してください。

+0

私のマシンは米国です。ドキュメントに基づいて、デフォルトロケールは米国です:https://docs.handsontable.com/pro/1.8.2/demo-numeric.html – user70192

関連する問題