找回密码
 立即注册

QQ登录

只需一步,快速开始

sumyy

注册会员

13

主题

55

帖子

154

积分

注册会员

积分
154
sumyy
注册会员   /  发表于:2024-6-12 20:36  /   查看:1530  /  回复:15
本帖最后由 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();


15 个回复

倒序浏览
sumyy
注册会员   /  发表于:2024-6-13 09:01:43
沙发
请问一下有可能是那些原因,我根据场景一个一个去试以下原因。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于: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.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-13 17:46:16
5#
您好,正常情况下不会受表单保护限制,设置rowCount也不会影响到此处的逻辑,不清楚为什么会出现这样的问题,最好还是请您提供一个可以复现此问题的Demo这边帮您调研看看。
回复 使用道具 举报
sumyy
注册会员   /  发表于:2024-6-13 19:35:04
6#
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());
    }
这个是测试代码,结果在图片中行数没有变化,按照你们的说法应该会变的,是什么原因呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
sumyy
注册会员   /  发表于:2024-6-14 09:19:44
7#
sumyy 发表于 2024-6-13 19:35
public static void main(String[] args) {
        // 创建一个新的工作簿
        Workbook workboo ...

gcexecl的版本是6.2.5
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-14 09:20:37
8#
您好,我这边按照您说的测试了一下:



删除前:



删除后:



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
sumyy
注册会员   /  发表于:2024-6-14 09:22:53
9#
是的,我们不希望只是数据被删除,还希望连带着对应的行或者列一起删除
回复 使用道具 举报
sumyy
注册会员   /  发表于:2024-6-14 10:01:32
10#
Joestar.Xu 发表于 2024-6-14 09:20
您好,我这边按照您说的测试了一下:

我们就是想实现那个所见即所得的,而不是简单的清除数据。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部