表格6666 发表于 2023-12-19 10:34:28

异常:The calc engine is not enable, so can not evaluate the formula

本帖最后由 Richard.Ma 于 2024-1-17 15:23 编辑



产品:GcExcel .NET
版本:v6.2.5
问题编号:DOCXLS-9593

设置 workbook.EnableCalculation = false,再使用workbook.Open() 时会抛出 The calc engine is not enable, so can not evaluate the formula 的异常,EnableCalculation 改为true则不会;请问json中的哪些数据会导致这个异常呢,有什么解决办法吗?

Richard.Huang 发表于 2023-12-19 13:37:47

您好,关闭计算引擎请在加载完文件后进行,如果您不希望加载时计算数据,您可以在open方法中添加对应的配置

表格6666 发表于 2023-12-21 14:22:12

Richard.Huang 发表于 2023-12-19 13:37
您好,关闭计算引擎请在加载完文件后进行,如果您不希望加载时计算数据,您可以在open方法中添加对应的配置 ...

1. 您说的“您可以在open方法中添加对应的配置”指的是DeserializationOptions中的IgnoreFormula属性那个是吗,这个属性设置为true,是不是导出时也会去掉公式了呢?
2. 关闭计算引擎请必须在加载完文件后进行吗,加载前关闭计算引擎必定会报这个异常吗

Richard.Huang 发表于 2023-12-21 17:40:45

表格6666 发表于 2023-12-21 14:22
1. 您说的“您可以在open方法中添加对应的配置”指的是DeserializationOptions中的IgnoreFormula属性那个 ...

对于您的两个问题我进行分别回答:
1. 添加的配置是这个:options.setDoNotRecalculateAfterLoad(true);// 导入后不自动计算,如果使用ignoreFormula那么公式不会导入,仅仅导入之前缓存的计算值

2. 并不是一定要加载前必须关闭,一般在加载前关闭计算引擎并不会出现报错,经过我的详细测试发现您的文件报错的主要原因在于您的这个折线图表有关,请问您的这个折线图是如何产生的,我在页面上给您的这两个单元格正常创建折线图就不会有该问题。您可以参考我动图中的复现过程,以及将附件内容下载到本地进行测试。



Richard.Huang 发表于 2023-12-22 13:38:13

不知道楼主的问题解决了没?如果没有还没有解决,可以如楼上所述,告知如何让我复现出您原文件中插入的这个图表,方便我们后续调研出具体原因

Lynn.Dou 发表于 2023-12-28 14:51:05

请问楼主问题解决了吗?如果仍有疑问,可以继续跟帖交流。

Richard.Ma 发表于 2024-1-8 17:25:37

本帖最后由 Richard.Ma 于 2024-1-9 10:58 编辑

根据上周会议沟通的内容,研发这边对此错误的原因进行了排查,目前得到的原因是:

此异常是由图表更新数据引起的。如果 EnableCalculation 为 false,则图表不需要更新数据。导致了图表更新数据错误,引发报错信息。

具体的修复计划在7.0.2完成

但是我们也做了测试,在开启计算引擎时,加载和保存速度也是很快的。并没有出现速度缓慢的问题,是否仍需要其他的步骤或代码重现问题,请继续回帖沟通


Richard.Huang 发表于 2024-1-31 16:27:35

最新调研进展:本贴中提及的问题已经在GcExcel V7.0.1中得到修复,您可以通过升级GcExcel 的版本来解决该问题
页: [1]
查看完整版本: 异常:The calc engine is not enable, so can not evaluate the formula