sumyy 发表于 2024-6-12 20:36:34

删除行列删除不掉

本帖最后由 Wilson.Zhang 于 2024-8-29 16:24 编辑


产品:GcExcel
版本:7.1.2
调研编号:DOCXLS-10567
Last Review:2024-08-29
当前进展:已经作为一个需求,计划在V8.0.0中支持。

我把前端的删除放到后端去实现,发现删除不掉,但是单测却可以,想问一下可能是什么原因?以下是后端简单代码。

                        String rangeString = String.format("%s:%s", start, end);
                        worksheet.getRange(rangeString).getEntireColumn().delete();


sumyy 发表于 2024-6-13 09:01:43

请问一下有可能是那些原因,我根据场景一个一个去试以下原因。

Joestar.Xu 发表于 2024-6-13 11:38:39

您好,看上去就是简单的删除操作,有可能是start和end设置的不正确导致无法删除,除此以外判断不出其他可能的原因,可以先排查一下,如果问题仍然存在,请提供一个可以复现出此问题的Demo,这边帮您调研看看。

sumyy 发表于 2024-6-13 13:59:53

Joestar.Xu 发表于 2024-6-13 11:38
您好,看上去就是简单的删除操作,有可能是start和end设置的不正确导致无法删除,除此以外判断不出其他可能 ...
请问一下如果是传参有问题,那么单测就过不了,现在是单测可以看到行列减少了,但是在实际操作中传过来的workbook就不会减少行列数.通过getrowcount(),在调用删除的内容,后面又去调getrowcount(),发现值没有变化。就是正常情况下是删除行列是不会有东西限制的是吧,比如说开了保护模式,前端设置了rowcount,或者行的锁定什么的,有没有这种可能性?

Joestar.Xu 发表于 2024-6-13 17:46:16

您好,正常情况下不会受表单保护限制,设置rowCount也不会影响到此处的逻辑,不清楚为什么会出现这样的问题,最好还是请您提供一个可以复现此问题的Demo这边帮您调研看看。

sumyy 发表于 2024-6-13 19:35:04

Joestar.Xu 发表于 2024-6-13 17:46
您好,正常情况下不会受表单保护限制,设置rowCount也不会影响到此处的逻辑,不清楚为什么会出现这样的问题 ...

public static void main(String[] args) {
      // 创建一个新的工作簿
      Workbook workbook = new Workbook();

      // 获取第一个工作表
      IWorksheet sheet = workbook.getWorksheets().get(0);

      // 设置工作表的行数为300行
      sheet.setRowCount(300);

      // 输出初始行数
      System.out.println("初始行数: " + sheet.getRowCount());

      // 删除第50到100行
      sheet.getRange("50:100").delete();

      // 输出最终行数
      System.out.println("删除后的行数: " + sheet.getRowCount());
    }
这个是测试代码,结果在图片中行数没有变化,按照你们的说法应该会变的,是什么原因呢?

sumyy 发表于 2024-6-14 09:19:44

sumyy 发表于 2024-6-13 19:35
public static void main(String[] args) {
      // 创建一个新的工作簿
      Workbook workboo ...

gcexecl的版本是6.2.5

Joestar.Xu 发表于 2024-6-14 09:20:37

您好,我这边按照您说的测试了一下:



删除前:



删除后:



数据确实被删除了,但是RowCount没有变化,你这边期望的效果是RowCount变成250吗?

sumyy 发表于 2024-6-14 09:22:53

是的,我们不希望只是数据被删除,还希望连带着对应的行或者列一起删除

sumyy 发表于 2024-6-14 10:01:32

Joestar.Xu 发表于 2024-6-14 09:20
您好,我这边按照您说的测试了一下:




我们就是想实现那个所见即所得的,而不是简单的清除数据。
页: [1] 2
查看完整版本: 删除行列删除不掉