lynn8588 发表于 2023-12-15 10:28:20

插入列公式变更错误问题

本帖最后由 Ellia.Duan 于 2024-1-8 11:50 编辑

产品:GcExcel
版本:V6.1.4
问题编号:DOCXLS-7267
需求编号:DOCXLS-9599

之前发过一个帖子,关于新增列公式变更的问题,地址如下:
https://gcdn.grapecity.com.cn/showtopic-159293-1-176.html

这个应该是一个bug,因为我发现在插入行的时候,即使配置了一个不存在的sheet的引用,公式变更也不会出错,但是,插入列就会变错,

同时Excel中的表现形式,即使是配置了一个不存在sheet的引用,在插行列的时候公式都不会变错,这个问题还请你们调查一下是不是BUG,或者说在新版本上是否有解决?


Ellia.Duan 发表于 2023-12-15 15:01:34

您好,问题已收到,我们将继续调研下这个问题。

Ellia.Duan 发表于 2023-12-15 16:22:36

您好,我在v6.2.5版本做了以下测试:
1、创建sheet“CIT.WP00.0_调整汇总”
2、设置公式“=CIT.WP01.1_预提费用!F7”
3、创建sheet“CIT.WP01.1_预提费用”
4、sheet增加列
发现公式引用发生变化,从F7变为G7 ,如下图所示:

其次,按照您的描述,为sheet增加行,但是公式引用也发生了变化,如下图所示:

但是您提到了在Excel中,没有公式引用问题,所以我将继续跟踪此问题。

lynn8588 发表于 2023-12-15 17:34:09

嗯,谢谢,据我了解,你们有一个机制,是当单元格引用了一个不存在的报表单元格的时候,用getPrecedent()方法获取单元格引用关系时,此时结果中引用公式内的报表名称会变成当前的报表名称,不知道是不是这个引起的,但是按道理,getFormula本身拿到的公式不应该变成一个错误的公式

Ellia.Duan 发表于 2023-12-15 17:57:25

有这个可能性,已提交给开发团队深入调研这个问题。

Ellia.Duan 发表于 2023-12-19 14:46:43

您好,调研结果如下:
创建引用其他工作表的公式时,会创建一些引用索引。如果引用的工作表不存在,则在插入过程中剪切到新列的公式将无法通过引用索引更新其引用。(不存在工作表,没有引用索引。
由于现有体系结构仍然需要工作表存在才能使公式正常运行,因此建议在添加公式之前将引用的工作表放在适当的位置。
如果需要在创建工作表本身之前添加引用不存在的工作表的公式,则可以暂时禁用计算引擎,然后在处理所有更改后重新启用。
   Workbook workbook = new Workbook();
      IWorksheet workSheet = workbook.getWorksheets().get(0);
      workSheet.setName("CIT.WP00.0_调整汇总");
      workbook.setEnableCalculation(false);
      workSheet.getRange(1, 1).setFormula("CIT.WP01.1_预提费用!F7");
      IWorksheet worksheet1 = workbook.getWorksheets().addAfter(workSheet);
      worksheet1.setName("CIT.WP01.1_预提费用");
      workbook.setEnableCalculation(true);
      String sourceFormula = workSheet.getRange(1, 1).getFormula();
      workSheet.getRange(1, 1).getEntireColumn().insert();
      String changeFormula = workSheet.getRange(1, 2).getFormula();
      System.out.print(sourceFormula+','+changeFormula);
结果如下:

lynn8588 发表于 2023-12-19 15:53:26

那这个标记的设置,必须要成对一起使用,还是只设置false,公式也会跟着行列的变更正确变化呢?

Ellia.Duan 发表于 2023-12-19 17:58:25

需要成对使用,如果只设置false,当公式引用的单元格发生变化时,公式将不更新。

lynn8588 发表于 2023-12-19 18:42:45

好的

Ellia.Duan 发表于 2023-12-20 09:15:53

好的,有问题随时沟通。
页: [1] 2 3
查看完整版本: 插入列公式变更错误问题