1 html javascript excel jquery html-table
我正在寻找一种使用Javascript(首选Jquery)使html表表现得像excel的方法。这是我的问题。我做了一个这样的表:
\n\n <table>\n <tr>\n <td id="A1">10</td>\n <td id="B1">10.5</td>\n </tr>\n <tr>\n <td id="A2">5</td>\n <td id="B2" formula="A1+B1+A2"></td>\n </tr>\n </table>\nRun Code Online (Sandbox Code Playgroud)\n\n每个td都有一个id,其中一些td添加了公式属性。我想计算这些公式\xef\xbc\x8c 将公式的值赋予td。
\n\n在上表中,我想分配B2值25.5(B2=A1+B1+A2)。
\n\n看起来像这样:
\n\n<td id="B2" formula="A1+B1+A2">25.5</td>\nRun Code Online (Sandbox Code Playgroud)\n\n有人可以给我线索吗?谢谢。
\n\nPS:这是我找到的一些资源,但它们并不能解决我的问题
\n\n\n\n非常感谢@palindrom。根据您的回答,我终于解决了我的问题。
\n\n这是我的代码:
\n\n $("td[formula]").each(function(){\n //1 get formula attribute\n var formula = $(this).attr(\'formula\');\n\n //2 use regex to make expression, with the surpport of "A122"\xef\xbc\x8c "AB1" and more\n var expression = formula.replace(/([A-Z]+[0-9]+)/g, "parseFloat(\\$(\'#$1\').html())") ;\n\n //3 eval the expression\n var result = eval( expression );\n\n //4 set the value\n $(this).html(result);\n });\nRun Code Online (Sandbox Code Playgroud)\n
应该适用于简单的数学,没有尝试:
$("td[formula]").each( function() {
this.html( eval( this.attr("formula").replace(/[a-z][0-9]/g, "\$('#$0').html()") ) );
} );
Run Code Online (Sandbox Code Playgroud)
编辑: 如果公式中有 sum 之类的函数,请将它们实现为 javascript 函数,它们也应该可以工作。
| 归档时间: |
|
| 查看次数: |
11714 次 |
| 最近记录: |