找回密码
 立即注册

QQ登录

只需一步,快速开始

dzf
金牌服务用户   /  发表于:2017-1-23 16:36  /   查看:4154  /  回复:5
本帖最后由 dzf 于 2017-1-24 14:15 编辑

例如 ( sheet1!A3 + sheet4!b5 ) / sheet2!C3
如何得出这个表达式的值?
javascript的我知道这么写
var value1 = GcSpread.Sheets.Calc.evaluateFormula(spread.getActiveSheet(), formula, 0, 0, false);

但winform不清楚?

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-23 17:08:07
沙发
WInfrom C#代码

  1. FarPoint.Web.Spread.Model.DefaultSheetDataModel dm;
  2. dm = FpSpread1.ActiveSheetView.DataModel;
  3. FarPoint.CalcEngine.Expression ex;
  4. object o;
  5. FpSpread1.ActiveSheetView.Cells[0, 0].Value = 10;
  6. FpSpread1.ActiveSheetView.Cells[1, 0].Value = 10;
  7. FpSpread1.ActiveSheetView.Cells[2, 0].Formula = "A1 + A2";
  8. ex = dm.ParseFormula(2, 0, "A1+A2");
  9. o = dm.EvaluateExpression(2, 0, ex); Response.Write(o.ToString());
复制代码
回复 使用道具 举报
dzf
金牌服务用户   /  发表于:2017-1-23 17:15:28
板凳

这样写,公式就真的到了界面上了吧?我的界面是用户看得见的一个EXCEL?
计算结果不会显示到2,0位置吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-23 17:51:40
地板
不会,那个是因为,excel公式是有相对位置的,一般您都设置0 0 也可以。

刚才代码有问题,是web平台的。

  1.        FarPoint.Win.Spread.Model.DefaultSheetDataModel dm;
  2.             dm = fpSpread1.Sheets[0].Models.Data as FarPoint.Win.Spread.Model.DefaultSheetDataModel;
  3.             FarPoint.CalcEngine.Expression ex;
  4.             object o;
  5.             fpSpread1.ActiveSheet.Cells[0, 0].Value = 10;
  6.             fpSpread1.ActiveSheet.Cells[1, 0].Value = 10;
  7.             //fpSpread1.ActiveSheet.Cells[2, 0].Formula = "A1 + A2";
  8.             ex = dm.ParseFormula(2, 0, "A1+A2");
  9.             o = dm.EvaluateExpression(2, 0, ex);
  10.             label1.Text = o.ToString();
复制代码
回复 使用道具 举报
dzf
金牌服务用户   /  发表于:2017-1-24 09:34:16
5#
dexteryao 发表于 2017-1-23 17:51
不会,那个是因为,excel公式是有相对位置的,一般您都设置0 0 也可以。

刚才代码有问题,是web平台的。 ...

搞定了,谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-24 09:57:28
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部