找回密码
 立即注册

QQ登录

只需一步,快速开始

shclyx

初级会员

35

主题

64

帖子

473

积分

初级会员

积分
473

活字格认证元老葡萄

shclyx
初级会员   /  发表于:2018-4-4 13:18  /   查看:4069  /  回复:6
如何获取自定义名称的值,另外,我设了一个 单位名称 ,年,月,日 4个自定义函数的值 ,发现自定义名称的值只能是数值.单位名称是字符串,设置不起作用,公式引用时总是显示名称不存在,如何解决?

6 个回复

倒序浏览
shclyx
初级会员   /  发表于:2018-4-4 14:05:07
沙发
名称是字符串的搞定了,不知如何从程序中获取自定义名称的值?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-4 14:21:22
板凳
您是想获取自定义名称所对应公式的计算结果值?
请参考如下代码

  1.             FarPoint.Win.Spread.Model.DefaultSheetDataModel d;
  2.             d = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)fpSpread1.Sheets[0].Models.Data;
  3.             d.AddCustomName("MySum", "A1+A2", 0, 0);

  4.             FarPoint.CalcEngine.Expression exp;
  5.             FarPoint.Win.Spread.Model.IExpressionSupport2 es;
  6.             es = (FarPoint.Win.Spread.Model.IExpressionSupport2)fpSpread1.ActiveSheet.Models.Data;
  7.             exp = es.ParseFormula(0, 0, "MySum");
  8.             fpSpread1.ActiveSheet.Cells[0, 0].Value = 1;
  9.             fpSpread1.ActiveSheet.Cells[1, 0].Value = 2;
  10.              fpSpread1.ActiveSheet.Cells[2,0].Value= fpSpread1.ActiveSheet.EvaluateExpression(0, 0, exp);
复制代码
回复 使用道具 举报
shclyx
初级会员   /  发表于:2018-4-4 16:41:36
地板
谢谢你给我提供获取自定义名称所对应公式的计算结果值,那么如何取自定义名称的值(自定义名称是函数参数,也就是传入的参数值)
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-4 17:34:41
5#
不是很明白,可否举一个具体些的例子,或者给下您的代码,希望获取那部分的值
回复 使用道具 举报
shclyx
初级会员   /  发表于:2018-4-5 08:28:36
6#
如下代码:
            Dim d = FpSpread1.ActiveSheet
            d.AddCustomName("账套", JcApp.AccId, 0, 0, False, "")
            d.AddCustomName("单位", """" & TxtDw.Text & """", 0, 0, False, "")
            d.AddCustomName("年", JcApp.Year, 0, 0, False, "")
            d.AddCustomName("月", CboMonth.SelectedIndex + 1, 0, 0, False, "")
            d.AddCustomName("日", CInt(TxtDay.Text), 0, 0, False, "")
以后如何从代码(不是公式中的函数参数)中获取这些名称的值
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-8 09:29:18
7#
有GetCustomName

  1. FpSpread1.ActiveSheet.AddCustomName("Alpha", "Sum(A1,A2)", 1, 1)
  2. FpSpread1.ActiveSheet.SetFormula(1, 1, "Alpha")
  3. FpSpread1.ActiveSheet.SetValue(0, 0, 10)
  4. FpSpread1.ActiveSheet.SetValue(1, 0, 10)
  5. Label1.Text = FpSpread1.ActiveSheet.GetCustomName("Alpha", 1, 1).ToString()
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部