1

Javascriptを使用してExcelのように動作するhtmlテーブルを作成する方法を探しています(Jquery推奨)。ここに私の問題があります。次のような表を作りました。

 <table>
       <tr>
          <td id="A1">10</td>
          <td id="B1">10.5</td>
       </tr>
       <tr>
          <td id="A2">5</td>
          <td id="B2" formula="A1+B1+A2"></td>
       </tr>
 </table>

すべての td には ID があり、それらの td の一部には式属性が追加されています。そして、それらの式を計算し、式の値を td に渡します。

上の表では、 B225.5(B2=A1+B1+A2)を割り当てたいと思います。

こんな風に見える:

<td id="B2" formula="A1+B1+A2">25.5</td>

誰でも私に手がかりを与えることができますか?ありがとう。

PS:ここに私が見つけたいくつかのリソースがありますが、それらは私の問題を解決しません

  1. DOM 上のスプレッドシートのような数式

  2. http://zaach.github.com/jison/docs/


どうもありがとう@palindrom。私は最終的にあなたの答えに基づいて問題を解決しました。

これが私のコードです:

    $("td[formula]").each(function(){
        //1 get formula attribute
        var formula = $(this).attr('formula');

        //2 use regex to make expression, with the surpport of "A122", "AB1" and more
        var expression = formula.replace(/([A-Z]+[0-9]+)/g, "parseFloat(\$('#$1').html())") ;

        //3 eval the expression
        var result = eval( expression );

        //4 set the value
        $(this).html(result);
     });
4

3 に答える 3

4

簡単な計算でうまくいくはずですが、試しませんでした:

$("td[formula]").each( function() {
  this.html( eval( this.attr("formula").replace(/[a-z][0-9]/g, "\$('#$0').html()") ) );
} );

編集: 数式に sum などの関数がある場合は、それらを JavaScript 関数として実装すると、それらも機能するはずです。

于 2013-01-30T12:13:23.070 に答える
0

これは私が書いた html の表で、行ごとに式が計算されます (iframe ソースを参照)。
数式は JavaScript で (可能な限り複雑に) 記述され、[abc] は id=abc (ヘッダーからの重み) のセルの値に置き換えられ、{abc} は同じ列のセル内のテキストに置き換えられます。ライン。
列はソート可能です
。重みはユーザーが変更でき、Cookie に記憶されます。

これが役立つことを願っています。

于 2015-05-09T08:20:15.750 に答える