gpt4 book ai didi

java - 如何忽略列计数中的最后一列?我正在使用 Apache POI 读取 Excel 数据

转载 作者:行者123 更新时间:2023-12-02 02:41:10 25 4
gpt4 key购买 nike

当我使用下面的 TC_001 代码时,它返回 8 作为列计数,但我希望在具有注释部分的计数列中忽略最后一行。我希望列数为 5,因为有 5 列的文本忽略评论(操作 1)部分。

int colCount = DataProviderFactory.getExcel().getColCount(0, 1);//this is user defined function using Apache POI to get column count of sheet with index 0 and row 1

enter image description here

那么有没有什么方法可以忽略计数中的“注释”行来获取列计数?我想如果有什么方法可以将“G”行视为最后一行,那么它可能会解决它。所以TC_001应该计数为5,TC_002应该计数为7,TC_003应该计数为4,TC_004应该计数为1等等。我尝试在线搜索解决方案并发现this一个,但不知道如何实现它,无论我是否必须在代码或Excel中添加它,或者这与我的要求不同。请指导我如何实现我的要求。

最佳答案

row.getPhysicalNumberOfCells();

就是你要找的东西。从该方法的文档中:

Gets the number of defined cells (NOT number of cells in the actual row!). That is to say if only columns 0,4,5 have values then there would be 3.

由于您现在想忽略最后一列,因此只需执行 row.getPhysicalNumberOfCells() - 1; 即可,鉴于评论总是被填充。

编辑:

此方法应该适用于 A 到 G 列:

private static int getNumOfCellsWithContent(int rowNum, Sheet sheet) {
int result = 0;
Row r = sheet.getRow(rowNum);
if (r == null) {
return 0;
}
for (int i = 0; i < 7/* 7 = H */; i++) {
Cell c = r.getCell(i);
if (c != null && !c.getCellTypeEnum().equals(CellType.BLANK)) {
result++;
}
}
return result;
}

关于java - 如何忽略列计数中的最后一列?我正在使用 Apache POI 读取 Excel 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com