GCEXCEL删除行后行仍然存在,用workSheet.getRowCount()方法获取结果不对
本帖最后由 Wilson.Zhang 于 2024-11-28 16:19 编辑产品:GcExcel
版本:7.1.0
调研编号:DOCXLS-11304
Last Review:2024-11-28
当前进展:计划在8.0.0版本支持。
读取本地有格式的Excel后,数据行有256行,总行数有314行,尝试使用wordSheet.getRange("256:314").delete()删除非数据行,删除后使用worksheet.getRowCount()显示数据仍然有314行
您好!从您的描述中了解到您想要删除的是一整行,而("256:314")在此代表从第256行到第314行。IRange:delete()可以删除一个单元格,也可以删除一系列单元格,删除范围取决于调用者IRange实例。
对于您的需求,可以参考如下代码删除目标行:
//删除第314行
worksheet.getRange("314:315").delete();
//删除行索引为313的整行
worksheet.getRange(313, 0, 1, worksheet.getColumnCount()).delete();
Wilson.Zhang 发表于 2024-10-10 17:41
您好!从您的描述中了解到您想要删除的是一整行,而("256:314")在此代表从第256行到第314行。IRange:delete ...
我想删除的就是256到314行,并且删除后rowCount显示正确 重点用户 发表于 2024-10-10 19:17
我想删除的就是256到314行,并且删除后rowCount显示正确
按照您的删除方式确实可以删除指定行范围,IRange:delete()在删除单元格时会将其他单元格移动以填充被删除的单元格,因此,删除前后IWorksheet:getRowCount()的结果不变。可以通过IWorksheet:getUsedRange()获取已使用的单元格范围,同时可以指定使用类型,如下图所示为API介绍。在获取到已使用单元格范围后,再通过IRange:getRowCount()即可得到被使用单元格范围行数。
可以参考官网API文档了解详情:
https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java/docs/JavaAPIDocumentation?api-url=%2Fgc-excel-java%2Fapi-docs%2Fv7.2%2Fcom%2Fgrapecity%2Fdocuments%2Fexcel%2FIWorksheet.html%23getUsedRange()
Wilson.Zhang 发表于 2024-10-11 08:59
按照您的删除方式确实可以删除指定行范围,IRange:delete()在删除单元格时会将其他单元格移动以填充被删 ...
自动填充后行数一直保持314行,我只想展示数据行为256,怎么处理呢 重点用户 发表于 2024-10-11 09:27
自动填充后行数一直保持314行,我只想展示数据行为256,怎么处理呢
试一下为工作表重新设置总行数,即,通过IWorksheet:setRowCount()将工作表总行数设置为删除行后已使用单元格区域的总行数。如下图所示,IWorksheet:setRowCount()设置当前工作表导出为json时的行数。
Wilson.Zhang 发表于 2024-10-11 11:55
试一下为工作表重新设置总行数,即,通过IWorksheet:setRowCount()将工作表总行数设置为删除行后已使用单 ...
但是workbook.tojson后我手动设置的rowCount没有生效,而是回到了开始系统默认的rowCount 重点用户 发表于 2024-10-11 16:42
但是workbook.tojson后我手动设置的rowCount没有生效,而是回到了开始系统默认的rowCount
”回到系统开始默认的rowCount“是SpreadJS默认的200行吗?顺便确认下您使用的版本,我们在7.2版本测试。
不是在workbook.toJson()后手动设置rowCount。首先,在删除行后,获取当前被使用区域的行数,即worksheet.getUsedRange().getRowCount()。然后,将上一步获取的值,通过worksheet.setRowCount()设置为sheet的总行数。试下这样操作。 本帖最后由 重点用户 于 2024-10-12 10:08 编辑
Wilson.Zhang 发表于 2024-10-11 17:46
”回到系统开始默认的rowCount“是SpreadJS默认的200行吗?顺便确认下您使用的版本,我们在7.2版本测试。 ...
1. 默认行数随机变化,有时和数据行数保持一致,有时会多出空行
2. GCExcel版本为7.1.0
3. 我先setRowCount,然后workbook.toJson。再去拿json里的rowCount发现我set的没有生效
重点用户 发表于 2024-10-12 10:07
1. 默认行数随机变化,有时和数据行数保持一致,有时会多出空行
2. GCExcel版本为7.1.0
了解情况了,我们复现了问题现象。调研下这个现象先,调研编号为DOCXLS-11304。需要一些时间分析,之后会及时向您同步结论,请您耐心等待。
页:
[1]
2