GcExcel6.1.4 复杂的Lambda公式报错[DOCXLS-8620]
本帖最后由 Joestar.Xu 于 2023-7-28 10:34 编辑如图, 定义一个转换中文金额大写的lambda公式运行报错, 这个lambda公式在spreadjs下能正常使用
代码如下:
Workbook workbook = new Workbook();
workbook.getNames().add("ADD1", "=LAMBDA(x, X+1)");
workbook.getActiveSheet().getRange("A1").setFormula("=ADD1(123)");
System.out.println(workbook.getActiveSheet().getRange("A1").getValue());
workbook.getNames().add("CNAMOUNT", "=LAMBDA(amount, \"\"&IF(TRIM(amount)=\"\",\"\",IF(amount=0,\"\",\"\"&IF(amount<0,\"负\",\"\")&IF(INT(amount),TEXT(INT(ABS(amount)),\"\")&\"圆\",)&IF(INT(ABS(amount)*10)-INT(ABS(amount))*10,TEXT(INT(ABS(amount)*10)-INT(ABS(amount))*10,\"\")&\"角\",IF(INT(ABS(amount))=ABS(amount),,IF(ABS(amount)<0.1,,\"零\")))&IF(ROUND(ABS(amount)*100-INT(ABS(amount)*10)*10,),TEXT(ROUND(ABS(amount)*100-INT(ABS(amount)*10)*10,),\"\")&\"分\",\"整\"))))");
workbook.getActiveSheet().getRange("A2").setFormula("=CNAMOUNT(123)");
System.out.println(workbook.getActiveSheet().getRange("A2").getValue());
不知道图为啥没贴上, 还导致提交报错
这是上面问题的报错截图
您好,您提到SpreadJS是正常的,我这边试了一下,SpreadJS也显示计算错误,应该如何修改才能使SpreadJS中也能正常显示呢?
Joestar.Xu 发表于 2023-7-28 09:12
您好,您提到SpreadJS是正常的,我这边试了一下,SpreadJS也显示计算错误,应该如何修改才能使SpreadJS中也 ...
你要把lambda公式通过名称管理器添加, 如图
然后在找个单元格输入公式
=CNAMOUNT(123)
结果如下:
这论坛有bug, 有些情况下图片贴不上, 看这个截图
您好,问题已重现,这边调研一下,后续有进展我会在本贴中回复您。
本帖先做保留处理了。 您好,该问题已被确认为是一个Bug,目前正在修复中,等修复完毕我会在帖子下回复您。 您好,该问题已在6.2.1中修复,您可以升级后再试试看。
页:
[1]