找回密码
 立即注册

QQ登录

只需一步,快速开始

lowes
注册会员   /  发表于:2020-12-15 09:38  /   查看:3371  /  回复:7
1金币
本帖最后由 lowes 于 2020-12-18 15:43 编辑

GcExcel4.0 怎么获取数据行数和数据列数?
POI中获取行数为 sheet.getLastRow() 获取到使用到单元格的最大行数;
获取列数为sheet.getRow(rowIndex).getLastCellNum() 获取到此行row的最大的列数;

在GcExcel怎么来获取这两个值?

最佳答案

查看完整内容

在getFormula之前先把公式计算关掉 workbook.setEnableCalculation(false) 遍历完之后再开启 workbook.setEnableCalculation(true)

7 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-12-15 09:38:19
来自 6#
在getFormula之前先把公式计算关掉
workbook.setEnableCalculation(false)
遍历完之后再开启
workbook.setEnableCalculation(true)
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-12-15 11:57:30
2#
worksheet.getRows().getRowCount()
worksheet.getColumns().getColumnCount()
可以拿到行数和列数。在一些情况下可能拿到的会比业务实际范围要大。这个时候可以用
getUsedRange方法获取使用区域,在通过usedrange.getRows().getRowCount(),usedrange.getColumns().getColumnCount()来获取使用的行数和列数。
getUsedRange方法中可以根据传入不同的参数来获取不同大小的区域
例如:
sheet.getUsedRange(EnumSet.of(UsedRangeType.Data,UsedRangeType.Style))
上面代码就是获取包含数据与样式的使用区域
所以GCExcel相比POI在获取行数和列数上更加灵活一些。可以根据喜好获取对应的使用区域及行数列数。
回复 使用道具 举报
lowes
注册会员   /  发表于:2020-12-15 14:51:58
3#
ClarkPan 发表于 2020-12-15 11:57
worksheet.getRows().getRowCount()
worksheet.getColumns().getColumnCount()
可以拿到行数和列数。在一 ...

使用getUsedRange()是可以获取到,谢谢!
试了下,通过循环遍历通过getRange(rowIndex, colIndex) 获取每个单元格,再获取单元格内的值,遍历一张表出来要花费好久,还有优化的点吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-12-15 15:33:26
4#
用类似下面的操作获取一个区域的二维数组
Object result = worksheet.getRange(row,col,rowCount,colCount).getValue();
回复 使用道具 举报
lowes
注册会员   /  发表于:2020-12-15 16:16:45
5#
本帖最后由 lowes 于 2020-12-15 16:18 编辑
ClarkPan 发表于 2020-12-15 15:33
用类似下面的操作获取一个区域的二维数组
Object result = worksheet.getRange(row,col,rowCount,colCount ...

是可以获取到单元格的值。但是获取每个单元格的公式有优化点吗?
需求是遍历excel中每个单元格的公式,识别出跨工作簿的公式
回复 使用道具 举报
lowes
注册会员   /  发表于:2020-12-15 17:05:43
7#
ClarkPan 发表于 2020-12-15 16:34
在getFormula之前先把公式计算关掉
workbook.setEnableCalculation(false)
遍历完之后再开启

测试了下,setEnableCalculation(false)对遍历速度上没有提升,还有其它的优化点吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-12-15 17:22:14
8#
那没有了,您可以把您测试的demo发我一下,我这边让研发调研一下,从底层代码层面是否还有优化的可能
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部