历史版本1 :JS应用office函数公式formula.js库 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1.描述编辑

使用开源JS库formula.js实现office公式(函数)。该库包含office公式约400多个常用公式。

2. 实现思路编辑

加载formula.js库,通过=formulajs.函数名称(参数)方式引用公式。

3. 操作步骤/示例编辑

先下载 附件formula.zip,解压缩,将formula文件夹放置在WebRoot下,新建报表模板,进入模板web属性,
 

选择引用 js
依次增加formula文件夹下的
numeric.min.js
numeral.min.js
jstat.js
formula.js
 
这样formula.js及其依靠的js被加载进入模板。
下来就是使用,formula的函数。
使用方法就是   formulajs.函数名称,区分大小写。函数名称可以查看formula.js对函数名称的定义,目前formula支持office2007版全部公式。
//使用前可以用Notepad++打开formula.js查找对TREND()函数参数的定义,exports.TREND = function(data_y, data_x, new_data_x);正确的用法是TREND(数组Y,数组X,待查数组);
var data_y=new Array();//新建数组;
var data_x=new Array();//新建数组;
var new_data_x=new Array();//新建数组;
data_y.push(contentPane.curLGP.getCellValue("A1"));//获取单元格的值并添加到数组data_y
data_y.push(contentPane.curLGP.getCellValue("A2"));
data_x.push(contentPane.curLGP.getCellValue("B1"));//获取单元格的值并添加到数组data_x
data_x.push(contentPane.curLGP.getCellValue("B2")); 
new_data_x.push(contentPane.curLGP.getCellValue("C1")); //获取单元格的值并添加到数组new_data_x
var ak=formulajs.TREND(data_y,data_x,new_data_x);//使用函数TREND
contentPane.setCellValue("D1",null,ak);//将计算结果赋值给单元格D1

添加按钮控件,给按钮添加点击事件,复制上面代码到点击事件下。 

计算前
 

计算后
 


如果加上JS参数,上面的代码更简洁。缺点就是数据不能实时根据填写内容动态变化,只能跟随页面加载。
 
测试结果显示函数被正常调用。源码地址
https://github.com/sutoiku/formula.js/
用Notepad++打开,统计共计428个公式。用法和ecxel一致。详细的操作步骤,包含明确的步骤号及对应操作截图,阅读者根据文档,能够完整的还原出示例。

4. 效果查看编辑

分别给出PC端、APP、H5的效果,若移动端不支持需要注明;

5.已完成模板(提交附件)编辑

最后需

formula.zip

WorkBook4.cpt

要提交GIF动态效果图,若涉及到模板、demo制作,需要一并提交。